C语言中switch选择语句中的default语句总是最后一次才执行的,也就是不管写在什么位置,它永远是当所有case判断都不满足时才会执行的。
如:
例1:
main()
{ int a=2;
switch(a)
{
case 1 : printf("1\n"); break;
case 2 : printf("2\n"); break;
case 3 : printf("3\n"); break;
default : printf("hello!\n");
}
}
例2:
main()
{ int a=2;
switch(a)
{
default : printf("hello!\n");
case 1 : printf("1\n"); break;
case 2 : printf("2\n"); break;
case 3 : printf("3\n"); break;
}
}
结果都是一样的。
检查一下每一个case语句段,其中有没有忘加break语句,如果没加,程序会在第一个匹配的case段执行完后继续执行下一个case段,直到遇到break或执行完default。
检查是不是所有case情况都没匹配上,所以执行了default段。