你的外层switch的case没有没有break。
default:
printf("\n");
break;//这里加上break位置在哪就不影响了,如果不加上,会接着往下执行,
比如
default:
printf("\n");
case 1://这里执行完default会接着执行case 1里面的代码
case都要有break,不然就会继续执行后面的case判断。
switch 会从上到下按照顺序比较,所以是有影响的,每个case和default都加一个break就会看到影响了
每个case后面都需要加break,不然会执行完整个switch语句。除非你的case里面有相同的逻辑判断
switch(a)
{
case 1 :
caes 2: printf("1-2");break;
case 3:printf("3");break;
case 4:
case 5:printf("4-5");break;
default:printf("defalut");break;
}
case后加break表示选择到一个case后跳出不执行其他case
case后不加break表示按顺序执行每一个case
如果加了break次序是不影响的,当然楼上的楼上举得例子是例外