是执行了break后就结束了整个循环吗?不是结束了这次的循环吗?就不会再加一了吗?那case后面的break,不是用了还可以加一继续下一次循环吗?很迷糊啊!

是执行了break后就结束了整个循环吗?不是结束了这次的循环吗?就不会再加一了吗?那case后面的break,不是用了还可以加一继续下一次循环吗?很迷糊啊!

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/513591713646173.png "#left"的答案怎么是1?

执行了break后,退出整个循环。
switch case里的break也是退出循环,不执行break下方的case。
for循环执行了2次。
第一次 a=0 ,0%2==0,继续下次循环。
第二次 a=1,1%2!=0,b=b+a=0+1=1,break退出整个循环。
所以答案是1.

img

按上图分析的,我们走一下流程:
a为0:执行到紫色区域,判断为偶数,则进行下一次循环。
a为1:..., 执行到绿色区域:b被赋值为a的值,跳出循环。

最终,a,b的值均为 1.

1、if后加上{}会方便理解代码。
2、if不加{},实际上就作用于 紧跟着他的语句。也就是continue;
3、当a = 1时没有进入if结构内,所以执行下边的b+=a;然后紧跟着就break了,整个程序就结束了。

continue是结束当前循环,a=0,除以2的余数为0,直接开始下一次循环,此时a=1,不满足if,执行b+=a,然后break退出循环语句,所以值为1