switch不是循环语句,但如果不在每一个case语句之后加上break,switch语句会找到符合条件的第一个分支语句,然后往下运行包括default语句在内的所有语句。
switch语句原理是跳转到caseX位置执行剩下所有的语句(包括其他case里面的),直到最后或者遇见break为止。因此在每一条语句最后+break即可。
因此不加break的话将会执行跳转到符合条件的case本身以及以下所有的语句。
#include<stdio.h>
int test(char a)
{
switch(a){
case 'a':
printf("a\n");
case 'b':
printf("b\n");
case 'c':
printf("c\n");
default:
printf("exit\n");
break;
}
}
int main(int argc, const char *argv[])
{
test('b');
return 0;
}
那么会输出:
b,c,exit