这个问题主要指向 C/C++,但我想其他语言也很相关。
我不明白为什么仍然使用 switch/case 而不是 if/else if。在我看来,这很像使用 goto,并导致相同类型的混乱代码,而使用 if/else if 可以以更有条理的方式实现相同的结果。
尽管如此,我还是经常看到这些街区。找到它们的常见位置是在消息循环(WndProc...)附近,而这些是它们引发最严重破坏的地方之一:变量在整个块中共享,即使不合适(并且不能在里面初始化)。必须特别注意不要放弃休息,等等......
就个人而言,我避免使用它们,我想知道我是否遗漏了什么?
它们比 if/else 更有效率吗?它们是按照传统进行的吗?