break 语句将终止执行其所在位置最接近的外围 do、for、switch 或 while 语句 。 控制权将传递给已终止语句后面的语句。
break;
在此语句之后,控件将在封闭循环或开关之后立即转移到语句或声明。
break语句不能用于打破多个嵌套循环。
switch…case
#include <stdio.h>
int main(void)
int i = 2;
switch (i)
case 1:
printf("1");
case 2:
printf("2"); // i==2, 所以从此行开始执行
case 3:
printf("3");
case 4:
case 5:
printf("45");
break; // 从此行跳出switch
case 6:
printf("6");
printf("\n");
return 0;
执行结果:2345
循环(以for为例)
#include <stdio.h>
int main(void)
int i, j;
for (i = 0; i < 3; ++i)
for (j = 0; j < 4; ++j)
break; // break 只能终止离它最近的循环
printf("Hello World!\n"); //输出三次
return 0;
执行结果:
Hello World!
Hello World!
Hello World!
#include <stdio.h>
int main()
int i;
for (i = 0; i < 3; ++i)
if (3 > 2)
break;
printf("Hello,World!\n");
return 0;
执行结果:无输出
根据定义可知,break只会打破do、for、switch 或 while 语句,不会打破if语句,所以这个例子中的break打破的是外层的for循环。
再看一个例子:
#include <stdio.h>
int main()
if (3 > 2)
break;
printf("Hello,World!\n");
return 0;
编译报错:error C2043: illegal break
gcc编译器下给我们提供了更多信息:
test.c: In function 'main':
test.c:7:4: error: break statement not within loop or switch
break;
^~~~~