switch语句的一些认识

[复制链接]
1547|9
 楼主| 自动132cl 发表于 2014-12-10 15:55 | 显示全部楼层 |阅读模式
不,但是为了进行错误检查或逻辑检查,还是应该在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      }
}
}
switch语句的最后一个分支可以不要break语句吗?
    尽管switch语句的最后一个分支不一定需要break语句,但最好还是在switch语句的每个分支后面加上break语句,包括最后一个分支。这样做的主要原因是:你的程序很可能要让另一个人来维护,他可能要增加一些新的分支,但没有注意到最后一个分支没有break语句,结果使原来的最后一个分支受到其后新增分支的干扰而失效。在每个分支后面加上break语句将防止发生这种错误并增强程序的安全性。此外,目前大多数优化编译程序都会忽略最后一条break语句,所以加入这条语句不会影响程序的性能。
keer_zu 发表于 2014-12-11 12:44 | 显示全部楼层
使用是最简洁的途径,不要在语言细节上纠缠过多,语言其实本身是很简单的。
yueguang3048 发表于 2014-12-11 13:16 | 显示全部楼层
写的不错     
 楼主| 自动132cl 发表于 2014-12-22 21:22 | 显示全部楼层
自动132  17号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部