打印

switch语句的一些认识

[复制链接]
1240|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

粉丝