C语言switch语句必须包含default分支吗

2024-11-22 04:55:24
推荐回答(2个)
回答1:

  1. 不!但是为了进行错误检查或逻辑检查,还是应该在switch语句中加入default分支。

    例如,下述switch语句完全合法:

    switch (char_code)
    {
          case tyt:
          case 'y': printf ( " You answered YES ! \n" )
               break
          case 'N':
          case 'n': printf ("You answered NO!\n");
               break
    }
  2. 但是,如果一个未知字符被传递给这条switch语句,会出现什么情况呢?这时,程序将没有任何输出。因此,最好还是加入一个default分支,以处理这种情况:

    ......
    default: printf ("Unknown response : %d\n", char_code);
              break
    ......
  3. 此外,default分支能给逻辑检查带来很多方便。例如,如果用switch语句来处理数目固定的条件,而且认为这些条件之外的值都属于逻辑错误,那么可以加入一个default分支来辨识逻辑错误。

  4. 请看下列:

    void move_cursor (int direction)
    {
         switch (direction)
         {
               case UP:     cursor_up()
                                break
               case DOWN:   cursor_down()
                                break
               case LEFT:   cursor_left ()
                                break
               case RIGHT:  cursor_ right ( )
                                 break
               default:     printf ("Logic error on line number %ld!!! \n",
                                         __ LINE__ )
                                 break
         }
    }

回答2:

不一定,default相当于if语句的else,用来执行当那些情况都不行的时候的选择,如果你的switch语句选择你知道就是那些情况,就不用使用default,但是为了出现什么突发状况,还是加上比较好