switch 语句在程序中使用有没有限制,他与goto有联系吗

camlee0131203 2006-06-27 10:28:42
同标题
...全文
449 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
取义 2006-06-28
  • 打赏
  • 举报
回复
GOTO 用起来特爽,给别人看的时候特不爽,要是程序大了维护起来更不爽!

程序是客户的,自己爽了客户不爽!

那你就为了一爽而失去了多爽!
  • 打赏
  • 举报
回复


bird1982 (90)、 crazy_lazy_pig (10)、

楼主有倒分的嫌疑哦
linanlucky 2006-06-28
  • 打赏
  • 举报
回复
国内大的软件公司好象都在自己的编码规范中禁止使用goto语句,日本客户也不提倡。
yuyuan830705 2006-06-27
  • 打赏
  • 举报
回复
同意楼上的。
比如 在把错误进行处理时,适合用goto的。

FuncA
{
if ( err1)
goto err_end1;

if ( err2)
goto err_end2;

if ( err3)
goto err_end3;
:
return TRUE;

err_end3:
...
err_end2:
...
err_end1:
...
return FALSE;
crazy_lazy_pig 2006-06-27
  • 打赏
  • 举报
回复
什么叫联系呢? 编程语言都是相互联系的, 一个语言里的两个语句更是紧密相连的. 不知道楼主指的是哪方面的联系?

而对于goto语句的使用, 我有不同的看法. 教学时老师总是说避免使用goto, 为什么要用"避免"二字? 我对此很反感. 一定要用"避免"的话, 我希望加上个前提, 就是说 "在不适合用goto时, 避免使用goto". 但是, 这样一加前提, 那么其他语句也一样, 于是有了"在不适合使用循环的时候, 避免使用循环", "在不适合使用分支的时候, 避免使用分支".
唉, 为什么非要把语句分个三六九等呢? 语言是灵活的, 合适用就用, 我们应该学会灵活机动, 而不是硬搬教条. 其实goto在和多时候会使程序更清晰更短, 效率更高.
BaiYangSpirit 2006-06-27
  • 打赏
  • 举报
回复
switch与goto没有直接联系,也很少联系起来使用.
switch经常与break, default使用
OOPhaisky 2006-06-27
  • 打赏
  • 举报
回复
goto和switch应该没有具体的联系吧,但是建议少用goto,否则程序的可读性很差。

至于“switch是否会影响程序效率”问题,也没有定论,任何语句如果你使用不当都可能造成性能下降。
rollor_phoe 2006-06-27
  • 打赏
  • 举报
回复
goto和switch没什么联系!
goto用多了会造成程序不太好控制,建议不到特别需要的时候,不要用goto语句,用循环代替即可!
用循环同样能达到目的,而且条理清晰!
pappGG 2006-06-27
  • 打赏
  • 举报
回复
那么 过多的使用会不会造成效率问题呀

比如 while中再嵌套switch
================================================

影响效率的主要因素是算法
while中再嵌套switch是很常见的

goto一般还是不要使用
camlee0131203 2006-06-27
  • 打赏
  • 举报
回复
那么 过多的使用会不会造成效率问题呀

比如 while中再嵌套switch
nchang 2006-06-27
  • 打赏
  • 举报
回复
switch(i)
{
case 1:
break;
case 2:
break;
default:
}
其实我的理解switch是一种变异的if-else,上面的switch语句完全可以转化为if-else形式哈:
if(i==1)
{
}
else if(i==2)
{
}
else
{
}
但是,你可以看出,这种写法没有switch来的条理清洗吧,而对你的问题,试想对if-else的使用有限制吗?没有吧,所以只要可以对条件使用case(好像就是常量(字符或数字)的判断吧),就可以使用switch^_^
而goto是每每我想使的时候,都忍住放弃,宁可多些两行代码也避免使用的东西@_@
hamimelon 2006-06-27
  • 打赏
  • 举报
回复
switch 语句在程序中使用没有限制,
他与goto没有联系
xyq1986 2006-06-27
  • 打赏
  • 举报
回复
switch没有限制吧,goto争议很大,建议还是不要随便使用goto
healer_kx 2006-06-27
  • 打赏
  • 举报
回复
轻易不用GOTO,这会让我想起BASIC。
bird1982 2006-06-27
  • 打赏
  • 举报
回复
事实上,没有直接的联系,不过,我写的时候还是比较喜欢在switch里面加goto,有种指哪打哪得感觉,比较爽的说~~
别人总说goto不好控制,不过我还是觉得用goto方便~
chenhu_doc 2006-06-27
  • 打赏
  • 举报
回复
比较保守吧?
chenhu_doc 2006-06-27
  • 打赏
  • 举报
回复
少用为好,除非我要用50行代码来取代一个goto!
lddLinan 2006-06-27
  • 打赏
  • 举报
回复
可避免使用goto地方就要避免,能不用就不用。
不过,如果你自己一个人写写程序玩,那就随便了。

至于switch的效率,编译器有很多优化的选择
1。当case很少的时候,展开为if else
2。展开成类似goto的语法。(没有人需要维护编译器产生的代码)
...等等

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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