1. 如果case后面不加break,那么程序会执行后面所有的case。
2. 尤其注意switch里面break的作用,不管哪里遇到break,都会跳出case。看下例子就明白了。
-
#include <stdio.h>
-
-
int main()
-
{
-
int line = 2;
-
char x = 'a';
-
-
switch(2)
-
{
-
case 1: printf("case 1\n");
-
case 2: printf("case 2\n");
-
case 3: printf("case 3\n");
-
case 4: printf("case 4\n");
-
default: printf("default\n");
-
}
-
-
switch(line)
-
{
-
case 1:
-
printf("line == 1\n");
-
break;
-
case 2:
-
printf("line == 2\n");
-
if(x == 'a')
-
{
-
printf("x == 'a'\n");
-
break;
-
}
-
printf("break from case 2\n");
-
break;
-
default:
-
printf("default\n");
-
break;
-
}
-
printf("switch over\n");
-
}
输出:
case 2
case 3
case 4
default
line == 2
x == 'a'
switch over
第一个例子不需要说明了,第二个例子我们在case 2的if语句里加了句break,希望跳出当前的if语句而执行后面的 printf("break from case 2\n");但是事实上没有执行这句,而是跳出了整个switch语句!!!
阅读(1624) | 评论(0) | 转发(0) |