发布网友
共5个回答
热心网友
continue语句用于结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.
一般形式:
比如:
unsigned char i, j=50;当程序循环到i=51时,执行continue语句,结束本次循环,即不执行下面的j=i语句,而是执行i++,即i=52,故i<100,循环的条件成立,循环继续执行,直到i<100的条件不成立,for循环才终止。
热心网友
continue 是用来提前结束本次循环,即跳过循环体里没执行的语句,转到循环体结束点前(就是倒数第二个花括号前那里!),然后执行for的n++ ,才再回到n<=200 。追问你的意思是for括号里的n++在循环体外面?
那我换成while来写
#include
void mian()
{
int n=100;
while(n<=200)
{
if(n%3==0)continue;
printf("%d ",n);
n++;
}
printf("\n");
}
它是死循环吗??
追答嗯,循环体是两个花括号里的语句,n++不是。用while写的上面那个会死循环。
书上应该也有吧 :
for(表达式1,表达式2,表达3)
{ 语句 }
等价于
表达式1
while(表达式2)
{
语句
表达式3
}
一般形式两者无条件等价,但是用continue时有所区别。
因为在while中,表达式3已经是循环体一部分,当执行continue语句时,表达式3也会被跳过,直达循环体最后的花括号前,然后回到while(表达式2)。这样会导致死循环。
而for的执行顺序是: 表达式2 —>循环体 —>表达3 ,执行continue时只跳过循环体,表达式3是不受影响的。
ps:LZ你写的main()粗心大意,两次都要写成mian()了
热心网友
continue是用来提前结束本次循环,即跳过循环体里没执行的语句,进入下一次循环,不是整个循环体。
break是 结束整个循环体。追问本来continue,break很清楚,做题的时候绕糊涂了。。我的意思是说,比如我换成while来写
#include
void mian()
{
int n=100;
while(n<=200)
{
if(n%3==0)continue;
printf("%d ",n);
n++;/*n++也在循环体里,且在continue之后,当n这时能被3整除,应该跳出本次循环(包括n++),直接回到while语句执行下次循环,不就成死循环了吗??*/
}
printf("\n");
}
热心网友
简单的说下:
continue 结束本次循环,进入下一次循环,不是整个循环体。
break 结束整个循环体。
所以依照你的理解,应该用 break;
不知道你明白了没?当初我开始学的时候也会搞混掉。O(∩_∩)O~ 那已经是历史了n年前追问本来continue,break很清楚,做题的时候绕糊涂了。。我的意思是说,比如我换成while来写
#include
void mian()
{
int n=100;
while(n<=200)
{
if(n%3==0)continue;
printf("%d ",n);
n++;/*n++也在循环体里,且在continue之后,当n这时能被3整除,应该跳出本次循环(包括n++),直接回到while语句执行下次循环,不就成死循环了吗??*/
}
printf("\n");
}
热心网友
//不用管我,伤不起 打酱油的,任务额 残念~
不过 continue只是跳出本次循环,不是跳出真个for循环。如n=3时候,continue了,
for(n=100;n<=200;n++)
n为4了...追问本来continue,break很清楚,做题的时候绕糊涂了。。我的意思是说,比如我换成while来写
#include
void mian()
{
int n=100;
while(n<=200)
{
if(n%3==0)continue;
printf("%d ",n);
n++;/*n++也在循环体里,且在continue之后,当n这时能被3整除,应该跳出本次循环(包括n++),直接回到while语句执行下次循环,不就成死循环了吗??*/
}
printf("\n");
}