菜鸡自学
注意case后是否有break。当满足条件的case后无break时,运行此case后的所有语句,既后面的case,default都失效了,保留其他代码。
int i;
for(i=0;i<3;i++)
switch(i)
{
case 0: printf("i=%d case 0\n",i);
case 1: printf("i=%d case 1\n\n",i);
default : printf("i=%d default\n\n\n",i);
}
结果如下:
i=0 case 0
i=0 case 1
i=0 default
i=1 case 1
i=1 default
i=2 default
这里用了换行符进行分别,不同的case结果。
前面6行是第一次for循环的结果;7—11行是第二次for循环结果;最后3行是最后一行的结果。
通俗一点说,就是:
1.找到满足条件的case,并且后紧跟有break:
其他的都不管,只运行这一行(直接注释掉这个case前面的所有语句)。
2.找到满足的case后,后面均无break:
直接“注释”掉这个case后面的其他"case","default"关键字,运行满足条件的case后的一句,和后面的所有代码。
3.后面远处有一句break;找到我想要的case后,只管执行后面代码,直到遇到break后跳出switch语句块。