C语言中,break语句可用于从for、while与do-while等循环中提前退出,也可以用从switch语句中跳出。在多层循环中break实现从最内层循环退出到上一级循环。

continue语句用于使for、while与do-while语句开始下一次循环的执行。在while与do-while中,continue语句的执行意味着立即执行测试部分;在for循环中,则意味着使控制转移到递增循环变量部分

注意continue语句只用于循环语句,不用于switch语句。在某个循环包含的switch语句中的continue语句,将导致进入下一次循环。

下面就来说说在某个循环中包含的switch语句中的continue语句和break语句的区别。

#include 
int main(){ int i, s1 = 0, s2 = 0, s3 = 0; for(i = 1; i <= 4; i++) { switch(i) { case 1: s1++; case 2: s2++; break; case 3: s3++; continue; } s1++; printf("%d,%d,%d\n", s1, s2, s3); } return 0;}

运行的结果如下:

如上所示 :使用break将跳出本switch但仍将执行for循环的剩余语句;使用continue则直接跳至i++进行下一次for循环执行。

第一次循环,case 1, s1先加1, s2也加1,遇到break后跳出switch,执行s1++,输出这三个数;

第二次循环,case 2, s2加1,遇到break后跳出switch,执行s1++,输出这三个数;

第三次循环,case 3, s3加1,遇到continue, 跳出本次循环(不执行s1++和printf());

第四次循环,case 4,switch语句中没有匹配的,跳过switch,执行s1++,输出三个数。

这也就是为什么四次循环却只有三次输出的原因。