为什么我的程序中switch的default语句会无条件执行一次

2024年11月22日 13:14
有2个网友回答
网友(1):

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;
 }
}


结果都是一样的。







网友(2):

  1. 检查一下每一个case语句段,其中有没有忘加break语句,如果没加,程序会在第一个匹配的case段执行完后继续执行下一个case段,直到遇到break或执行完default。

  2. 检查是不是所有case情况都没匹配上,所以执行了default段。