程序如下:
#include <stdio.h>
void main()
{
int i;
for(i=0;i<3;i++)
{
switch(i)
{
case 0:printf("this is 1\n");break;
case 1:printf("this is 1\n");break;
case 2:printf("this is 1\n");break;
}
}
}
运行结果
这个for循环,3次。然后通过switch语句,判断i的值。
break只能和最内侧的switch匹配,而不是for
其实很简单,了解一下break的作用,break不止作为循环的跳出,他还支持switch开关语句的case的跳出。而一个break只有一次性作用(就像两个循环,只能作用一次,要么内层,要么外层),而根据语法或者就近原则,不管如何这里的break都是与case作用的。
你的代码里三种情况都是printf("this is 1\n");所以打印三次 this is 1
case 0:printf("this is 1\n");break;
case 1:printf("this is 1\n");break;
case 2:printf("this is 1\n");break;
程序编写与运行结果相对应,输出正常。你想问的是什么?