最近看代码总会出现switch case中default放在语句块中间的情况,感觉特别奇怪,于是做了几个实验看下default放在
语句块中间是否有影响
void main()
{
int i = 3;
switch(i) {
case 1:
printf("case 1\n");
break;
case 2:
printf("case 2\n");
break;
default:
printf("has not found case \n");
break;
case 3:
printf("case 3\n");
break;
}
}
当i=3,执行结果"case 3"
当i=4,执行结果"has not found case"
看来default放置的位置并不会影响整个switch case语句块的判断,default总是在所有case都未匹配后才会执行。另外提醒下要注意case和default后的break语句,如果不添加break的话可能会导致一些莫名的情况。