c语言中if语句如果可以不用加上else是不是就最好不加上去?

例如:if(m % i == 0) return 0;
return 1;
答案给的是不加上else 但是加上else之后程序出来的结果是一样的,请问这样有什么区别吗?

不一样。
return只是给了电脑一个信号,在屏幕上是不显示什么的。你看不出来到底是一个什么样的过程。
if(m % i == 0) return 0; return 1;//这个是说如果(m % i == 0),那么return 0,否则不执行,接着会执行return 1;这个是连个return都会执行。

if(m % i == 0) return 0;
else
return 1;
但是这个就不一样了,这个是说以(m % i == 0)为依据,从 return 0和 return 1中选择一个执行。

我随便写了一个,你运行一下就知道了。一次完整的运行,一次把else去掉。
#include<stdio.h>
main()
{
int i,k,j;
scanf("%d",&i);
scanf("%d",&j);
k=i+j;
if(k==5)
printf("%d",k);
else
printf("cuowu");
}
去掉else以后你试着用2和3,应该是5,但是cuowu这个字也会出现。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-22
这应该取决于你在else所指示的情况下,需不需要做相应的逻辑处理,如果不用处理那就不写,反之写上else并作处理。

你所给的例子中的两个return是在不同的区域返回的,一个在if语句中返回,一个在所有的语句执行完后返回,跟加不加else没关系。追问

#include
#include
intprime(int m)
{ int i, n;
if(m == 1) return 0;
n= sqrt(m);
for(i = 2; i <= n; i++)
if(m % i == 0) return 0
(5)
}
就是这一段程序,其中第五空就是我说的那个问题。因为是选择题 答案有加上else的 和没有加上else的 只能选一个 这个什么情况啊?

追答

这个题再考你对for循环的理解,这里应该是不加的。for循环没有加{}
如果加了的话:
for(i = 2; i <= n; i++)
{
if(m % i == 0)
return 0
(5)//这里就要加else
}
但是本题没加,那么for循环的循环体就是他的下一行代码,这个是默认的
也就是说不加{}的情况下
for(i = 2; i <= n; i++)
if(m % i == 0) return 0;
这两行代码是个整体,当然不能把它们分开来去加个else 那就错了。

第2个回答  2012-11-22
if语句加else(如果true就执行......否则false就执行......)或者不加是要看你写的语句要实现什么功能,如果你一个语句判断的是true的话,并不需要判断false的情况,是不需要写的。如果是函数的话,写完之后最好加上一个return返回值或者表示程序的语句结束!

希望帮助到你了,还有疑问,可以百度HI我!
第3个回答  2012-11-22
没有什么最好不最好的,当加不加都是相同的流程时,你爱加不加,随便得很,没有规定非得加,也没有规定禁止加。C语言足够的灵活,不要被某些规范给吓着了
第4个回答  2020-01-24
一个是嵌套if,一个是嵌套else,其实两个都能用。比如,输入一个数a判断是0还是正数还是负数,如果是0,a=0,如果是正数a=1,如果是负数a=-1,代码1:if(a<=0){if(a==0)a=0;else
a=-1;}else
a=1;
。代码2:if(a<0)a=-1;
else
if(a==0)a=0;
else
a=1;
。看,两种方法都能实现。

c语言中if语句如果可以不用加上else是不是就最好不加上去?
不一样。return只是给了电脑一个信号,在屏幕上是不显示什么的。你看不出来到底是一个什么样的过程。if(m % i == 0) return 0; return 1;\/\/这个是说如果(m % i == 0),那么return 0,否则不执行,接着会执行return 1;这个是连个return都会执行。if(m % i == 0) return 0;else ...

c语言中if语句如果可以不用加上else是不是就最好不加上去?
return只是给了电脑一个信号,在屏幕上是不显示什么的。if(m % i == 0) return 0; return 1;\/\/这个是说如果(m % i == 0),那么return 0,否则不执行,接着会执行return 1;这个是连个return都会执行。if(m % i == 0) return 0;else return 1;include<stdio.h> main(){ int i...

C语言中if条件语句什么时候可以省略后面的else
如果else后面还是if...else...判断可以不加;else后面如果只有一条语句也可不加。但为了清晰起见,最好加上,这样更明白些,省的出错。C语言中递归什么时候可以省略return引发的 没有返回值的情况下是不需要return的 例如:void convertInt(int n){ if(n<10) cout<<n<<" "; else {...

C语言中的else是不是没有必要
当然不是啊,没有你想的这么简单。就论单个if语句当然有没有else无所谓,但是当多个if存在时,else就显示出他的优势来了,就知道该执行那条语句了,所谓条件多了,该有所取舍,所以你不能这样想啊~~~

C语言中或者C++,如果只用if,不用else可以吗?比如,如果100个数中满足...
可以的 对于任意的if else或者else if都不是必须的。但如果有else,那么前面就必须有if。

C语言中,if……else if结构中,可以省略最后的一个else吗?如果可以...
带不带else都是语法所容许的,都可以通过编译,然而带和不带并不等效,所以不能称之为省略。这里的x=-0;这一条语句没有带else,表示它并不受前面的条件控制。这道题分析的时候,主要利用if不带花括号的情况下只管最近的一条语句这一点,不要被不科学的缩进格式所迷惑。这样简单分析后,不难发现x...

c语言,while用法看看里面if语句中加else和不加else有什么不同?
因为如果你是else a++,那么执行if就不执行else,这样你就没有a++,则a始终是一个数,不会变

C语言中为什么有的if多分支语句结尾没有else?
在 C 语言中,if 多分支语句的结尾可以没有 else 分支。这是因为 if 语句的语法结构是这样的:if (expression) { statement1;} else { statement2;} 其中,else 分支是可选的。如果添加了 else 分支,则当表达式的结果为 false 时执行 statement2;否则,不执行任何语句,直接跳过整个 if 语句。...

这是c语言的一道题,谁知道答案我写的这个else可以加吗,还是必须加还是...
不可以加,不能加。因为return -1;应该在for循环语句外面,即for循环完全执行完才会运行到。它跟if语句不在一起的。如果加上else,就会变成数组的第一个元素如果不等于x,函数就返回-1了。所以不能加else。

c语言中if语句中的else后面的语句要不要加花括号{ } ?
不加。如果if后面有多个语句,则是需要的;如果只有一个的话,可写可不写!例如:if(a>b) print(a); if(a>b&&b>c) {print(b);print(c);} 这种循环判断语句的时候,不加花括号就是代表只有一句有效语句,如果不加代表的就是它下面只接受第一句话,后面的语句,自动归类为非此判断的在else...

相似回答