switch语句中各个case语句与default的次序不影响执行结果吗?

![](https://img-ask.csdn.net/upload/201508/12/1439350244_416593.png)图片说明

http://zhidao.baidu.com/link?url=wmBFivbZ3tyO_HPJvx3coYKWoVtAhIXR8cfkaEU-Zea5u8nkB2Um5pwvPExjMCrihmtMY0N8dQ1si17IkSHW2K

你的外层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次序是不影响的,当然楼上的楼上举得例子是例外