关于swith语句,请帮忙!

redbad2 2003-12-24 02:09:03
有没有那位兄弟帮忙解释一下在C/C++中,为什么要把switch语句设计成“向下穿越”的行为模式呢?谢谢!
...全文
142 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaojicheng 2003-12-24
  • 打赏
  • 举报
回复
huanmm(射手小王子) 你理解错误了。我是说如果不支持向下穿越怎么办。
huanmm 2003-12-24
  • 打赏
  • 举报
回复
回复人: qiaojicheng(乔) ( ) 信誉:100 2003-12-24 15:56:00 得分:0

如果不向下穿越怎么办呢?
向下穿越又有什么坏处呢?从而导致楼主产生这样的疑问。
--------
不向下穿越很简单
就是在每一个case执行完毕后加上一个break;
向下穿越唯一的坏处就是导致可读性的下降
当别人看你的程序的时候极有可能引起歧义
当改bug的时候degree的可能性会大大增加

所以并不推荐向下穿越的滥用
chinaplease 2003-12-24
  • 打赏
  • 举报
回复
使用switch要看情况而定,在有的情况下使用什么“向下穿越”法难道不怕输出错误吗?
doer_ljy 2003-12-24
  • 打赏
  • 举报
回复
为什么不呢?
这个设计是我痴迷于他的原因之一!
基本上,控制权在你手里。
这就叫灵活!
mostideal 2003-12-24
  • 打赏
  • 举报
回复
是的
向下穿越能提高效力
同时也让程序简捷明了
qiaojicheng 2003-12-24
  • 打赏
  • 举报
回复
如果不向下穿越怎么办呢?
向下穿越又有什么坏处呢?从而导致楼主产生这样的疑问。
windyloft 2003-12-24
  • 打赏
  • 举报
回复
谁还有别的好方法?
redbad2 2003-12-24
  • 打赏
  • 举报
回复
请将qiaojicheng(乔) 的具体点好吗?
难道除了使得程序更简洁更高效之外就没有其他用途了吗?

huanmm 2003-12-24
  • 打赏
  • 举报
回复
向下穿越的模式使得程序更简洁更高效
但是在实际运用的时候
个人认为应该是情况而定
不能滥用
否则会影响程序的可读性

我的原则是:只有在若干个case都作同一件事情的时候才这样用
qiaojicheng 2003-12-24
  • 打赏
  • 举报
回复
向下穿越可以使几种case执行同样的操作呀。
huanmm 2003-12-24
  • 打赏
  • 举报
回复
或许你心中升起疑问,为什么要把switch语句设计成这样呢?下面的例子可以解释这种“向下穿越”的行为模式是正确的:
switch (next_char)
{
case 'a': case 'A':
case 'e': case 'E':
case 'i': case 'I':
case 'o': case 'O':
case 'u': case 'U':
++vowel_cnt;
break;
//...
}


——以上摘自《Essential C++》[Stanley B. Lippman 著/侯捷 译]
fanhongfei 2003-12-24
  • 打赏
  • 举报
回复
你能否对“向下穿越”模式进行一些解释?

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧