这次主要是写一下switch中执行顺序的问题。
switch函数体中,不同的case对应着不同的情况。如果有break,自然容易理解。但某些没有break的情况下,就需要理解它的执行顺序了。
如下面的例子:
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a = 4;
switch (a) {
default:
printf("呵呵呵呵\n");
case 44:
printf("呵呵\n");
case 43:
printf("呵\n");
case 45:
printf("呵呵呵\n");
}
return 0;
}
执行结果如图:
如果把代码改为
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a = 4;
switch (a) {
default:
printf("呵呵呵呵\n");
break;
case 44:
printf("呵呵\n");
case 43:
printf("呵\n");
case 45:
printf("呵呵呵\n");
}
return 0;
}
运行结果如图:
可以看到,switch其实就是一条一条的检查,如果有符合条件的case,就不去管default,执行下去,直到函数结束或者遇到break;而如果没有,则直接执行default的语句。
所以说,最重要的一点就是switch是顺序检查并执行的。