我说详细点 :
当i=1时,x=1,不能被2整除,执行x+=5,此时x=6,然后执行continue,跳过x-=3,进入下一循环;
i=2时,x=6,能被2整除,故跳过{x+=5; continue; }这一句,执行x-=3,此时x=3;
以此类推,i=3时,x不能被2整除,执行x+=5,x这时等于8;
i=4时,x-3=5;
i=5时,x+5=10;
此时i再自加一次为6,x值已等于10,执行break,退出循环,得i=6,x=10。
明白吗
continue表示结束本次循环,进行下次循环
break 表示循环终止
循环
① i=1 x=1 x%2==1 x = x+5 = 6
② i=2 x=6 x%2!=1 x = x-3 = 3
③ i=3 x=3 x%2==1 x = x+5 = 8
④ i=4 x=8 x%2!=1 x = x-3 = 5
⑤ i=5 x=5 x%2==1 x = x+5 = 10
⑥ i=6 x=10 x>=10 break;
最后结果就是 i=6 x=10.
你把代码都写在一行上当然看不清啦,先理一理:
#include
int main()
{
int i,x;
for(i=1,x=1;i<=20;i++)
{
if(x>=10) break;
if(x%2==1)
{
x+=5;
continue;
}
x-=3;
}
printf("i=%d,x=%d",i,x);
getchar();
return 0;
}
i是计数变量,
这个程序功能是:x是奇数则加5,偶数则减3,直到满20次或x满10.
因此,运行时x呈现如下变化 1 6 3 8 5 10
可见最后x=10,一共执行了6次,所以i=6
continue:跳过本次循环(对本程序来说就是跳过x-=3,执行下一个for)