对于if语句中含continue语句的提问(C)

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:12:51
对于下面程序

if(a=1) continue;
n++;

我的问题是if表达式的值为1(即为真的话)是执行continue语句吧?

因为我看到参考书上题目有的解析是if条件为真,则执行continue.
而有的则是if条件为假,则执行continue.

对于if语句,一般的话是if表达式为真,则执行if后面的语句,若为假则不执行.
所以,不知道哪个是正确的?请高手帮忙解答下困惑.谢谢/.
o,不过也一样,因为把1赋值给a表达式也为1,为真.这里我只是举个例子,问下关于if这个问题.因为做题目的时候遇到这样问题.

回四楼,我知道这个问题,我想问的情况正好和你下面给出的例子一样.他给出的解析是a不是1,则执行continue,a是1则不执行continue,而执行n++;所以我认为是不是答案有错误还是怎么的,所以来上网询问下.

continue是用在while或者for循环里面才有意义吧。

if语句与continue没有关系。所有的if语句都是:
if (condition) {
true-statements;
} else {
false-statements;
}

我猜参考书说的没错,是你理解错了。一个较完整的例子:
while (1) {
...
if (a == 1) continue;
n++;
...
}
如果a是1,则执行continue,结果是跳过if后面包括n++在内的所有语句,重新进入while顶部。
如果a不是1,就不执行continue。依次执行包括n++在内的所有语句。

按照你补充的内容来看,应该是书上写错了。
汗一下写书的作者,连if都不弄明白就敢出版“著作”。

这个问题,这样的,if里面为真肯定执行下面的语句啦。但是,你要注意continue的用法,这是个小细节。要注意continue在循环中的用法,你没有把其他语句写出来啦。
所以continue其作用是为结束本次循环。即跳出循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

continue语句和break语句的区别是:continue语句只结束本次循环,而不终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

if(a=1) continue;
首先你这句话写错了,应该是if(a==1) continue;

至于你的问题,当然是if后面的表达式为真才执行后面的continue

if为真时执行后面的语句啊...
if(a = 1) -- 给a赋值后返回该值即1
一般是在if里进行逻辑判断

当然是前者了,就是if真执行continue,不过你这样写是出问题的,死缩环都有可能.