为什么开关/箱,而不是的if / else如果?

<p>在主要这个问题指着C / C ++,但我想其他语言相关的为好。 P&gt; </p><p>我不明白为什么交换机/箱仍在使用,而不是的if / else如果。在我看来,就像使用goto语句的,并导致同一类的乱码,而同样的结果可能与被acheived的if / else,如果在一个更加有组织的方式。 P&gt; </p><p>不过,我看到周围往往这些块。找到他们的共同的地方是靠近一个消息循环(的WndProc ...),而这些都是地方之中时,他们提出的最重的破坏:变量沿整个块共享,即使当不propriate(并且不能里面初始化)。格外重视对不会放弃休息的被投入,等等... P&gt; </p><p>就个人而言,我避免使用它们,不知阉我失去了一些东西? P&gt; </p><p>是不是如果/其他的他们更有效率? 难道他们按照传统进行的? P&gt;
</p>

41 浏览 1 回复
  gt   一个   情况   代码   他们  

回复

    <p> Summarising我最初的帖子和评论 - 有几个优点 在声明/ 声明: P&gt; </p><ol> <li> <p>更 清晰的代码。与多个代码链接/ 看上去凌乱且难以维持 - 给人清洁结构。 p&gt; li&gt; </p></li><li> <p>性能。对于密集 值编译器生成跳表,稀疏 - 二进制搜索或一系列/,因此,在最坏的情况下 是一样快/,但通常速度更快。尽管一些编译器同样可以优化/ p&gt; li&gt; </p></li><li> <p>测试顺序并不重要。为了加快系列/ 测试一个人需要首先把更可能的情况。同/ 程序员不需要考虑这个问题。 p&gt; li&gt; </p></li><li> <p>默认可以在任何地方。同/ 默认情况下,必须在最后 - 最后的后。在 - 可以在任何地方,无论程序员发现它比较合适。 p&gt; li&gt; </p></li><li> <p>通用代码。如果您需要的几种情况执行共同的代码,你可以省略 ,执行会“落空” - 这是你无法实现/。 (这是一个很好的做法,以放置一个特殊的注释 对于这样的情况 - 皮棉识别并没有抱怨,没有对此有何评论它不抱怨,因为它是常见的错误忘记)。 p&gt; li&gt; OL&gt; </p><p>感谢所有评论者。 P&gt; </p><p>好了,一个原因是清晰度.... P&gt; </p><p>如果你有一个开关/箱,则表达式不能改变.... 即。 P&gt;</p><p>而使用的if / else,如果错误地(或意向)写的: p&gt;</p><p>人阅读你的代码会想“们应该是相同的富表现”或“为什么他们不同”? P&gt;
    </p></li></ol>

    莫莉香

相关信息

if else 语句与switch的用法区别

具体的用处

44 浏览 6 回复   switch   if   判断   else   多路  

很简单的编程问题.如何用if else实现do while

假设只允许使用SEQUENCE和IF THEN ELSE两种控制结构,怎样利用它们实现DO WHILE操作

34 浏览 2 回复   递归   if   else   使用   while  

哪个是更好的一个开关语句或的if-else if-else语句? [重复]

> <p> <strong>可能显示的文件: STRONG&gt;结果 [是&ldquo;否则,如果&rdquo;的比&ldquo快;开关()情况下&rdquo;的?](http://stackoverflow.com/questions/767821/is-else-if-faster-than-switch-case)结果 What是的相对性能差异的if ...

22 浏览 1 回复   gt   if   语句   开关   一个  

有没有这样的东西作为一个SELECT在MySQL的一个if / else语句?

<p> <strong>是否有可能有一个SELECT语句中的MySQL与if / else语句的呢? STRONG&gt; P&gt; <p>例如。 P&gt; </p><p>我要选择所有的表行,并返回COLOR2只有当COLOR2是“棕色”。我的例子SQL选择什么,我想完成的语句如下: P&gt; APPLES...

37 浏览 1 回复   gt   选择   语句   color2   一个  

if/else switch 语句的缺点是什么?为何不提倡使用这两种语句?

有人说switch语句使用过多会使程序运行飞了。不记得从哪听说if语句也不提倡使用,说是有缺陷。谁知道? C++,我用VC写程序。

17 浏览 6 回复   语句   程序   switch   if   case