好库网首页 | 我的好库
好库网 好库网社区
IT社区 » C/C++ » C语言论坛 » switch 语句必须包含default分支吗
回复 发帖

查看:1255    回复:1 switch 语句必须包含default分支吗
访问okcool的空间
发表于 2012/6/10 14:57:04
1楼

RT

访问vchelp的空间
发表于 2012/6/10 14:58:07
2楼

不,但是为了进行错误检查或逻辑检查,还是应该在 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 

 

但是,如果一个未知字符被传递给这条 switch 语句,会出现什么情况呢?这时,程序将没有任何输出。因此,最好还是加入一个 default 分支,以处理这种情况: 

 

...... 

default: printf ("Unknown response : %d\n", char_code); 

           break 

...... 

 

此外,default分支能给逻辑检查带来很多方便。例如,如果用switch语句来处理数目固定的条件,而且认为这些条件之外的值都属于逻辑错误,那么可以加入一个 default 分支来辨识逻辑错误。请看下列: 

 

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 

      } 

}

您需要登录后才可以回帖 登录 | 注册
回复 发帖