include<stdio.h>
main()
{ int a=1,b;
for(b=1;b<=10;b++)
{ if(a>=8) break;
if(a%2==1) {a+=5; continue;}
a-=3;
}
printf("%d\n",b);
}
为什么程序运行输出结果为4
a | b |
---|---|
6 | 2 |
3 | 3 |
8 | 4 |
第三次循环的时候a>=8成立了直接break结束循环
a-=3不是每次都做得
break 退出整个循环
continue 退出本次循环,继续下一轮循环
break和continue后面的代码都不执行
第一轮开始前执行b = 1; 判断b <= 10
if (a >= 8)不满足 不执行
if (a % 2 == 1)满足 执行{ a += 5; continue; } 这里continue了 后面的代码一律不执行(这里指a -= 3;)直接继续下一轮循环 这时a=6
第二轮循环开始前执行b++ 这时b = 2 判断b <= 10
if (a >= 8)不满足 不执行
if (a % 2 == 1) { a += 5; continue; } 不满足 不执行
接着执行 a -= 3; 此时 a = 3
第三轮循环开始前执行b++ 这时b = 3 判断b <= 10
if (a >= 8)不满足 不执行
if (a % 2 == 1) { a += 5; continue; }满足 执行{ a += 5; continue; } 这里continue了 后面的代码一律不执行(这里指a -= 3;)直接继续下一轮循环 这时a=8
第四轮循环开始前执行b++ 这时b = 4 判断b <= 10
if (a >= 8) 满足 执行后面的 break;则退出整个循环
最后执行一次循环体外的printf("%d\n",b); 这里b = 4