相关疑难解决方法(0)

切换if-else语句的优点

使用switch语句与使用if30个unsigned枚举的语句的最佳实践是什么,其中大约10个具有预期的操作(目前是相同的操作).需要考虑性能和空间,但并不重要.我已经抽象了代码片段,所以不要因为命名惯例而讨厌我.

switch 声明:

// numError is an error enumeration type, with 0 being the non-error case
// fire_special_event() is a stub method for the shared processing

switch (numError)
{  
  case ERROR_01 :  // intentional fall-through
  case ERROR_07 :  // intentional fall-through
  case ERROR_0A :  // intentional fall-through
  case ERROR_10 :  // intentional fall-through
  case ERROR_15 :  // intentional fall-through
  case ERROR_16 :  // intentional fall-through
  case ERROR_20 :
  {
     fire_special_event();
  }
  break;

  default:
  { …
Run Code Online (Sandbox Code Playgroud)

c++ optimization if-statement switch-statement

162
推荐指数
9
解决办法
10万
查看次数

Duff的设备如何工作?

我已经在Duff的设备上阅读了维基百科上文章,但是我没理解.我真的很感兴趣,但我已经在那里阅读了几次解释,但我仍然不知道Duff的设备是如何工作的.

更详细的解释是什么?

c duffs-device

139
推荐指数
6
解决办法
3万
查看次数

为什么switch语句而不是if-else?

我一直想知道这件事已经有一段时间了.我到目前为止还不是一个核心程序员,主要是小型Python脚本,我写了几个分子动力学模拟.对于真正的问题:switch语句有什么意义?你为什么不能只使用if-else语句

感谢您的回答,如果之前有人询问过,请指向我的链接.

编辑

S.Lott指出,这可能是问题If/Else vs. Switch的重复.如果你想关闭然后这样做.我将把它留待进一步讨论.

language-agnostic if-statement switch-statement

60
推荐指数
5
解决办法
8万
查看次数

为什么Switch/Case而不是If/Else If?

这个问题主要针对C/C++,但我猜其他语言也是相关的.

我无法理解为什么仍然使用switch/case而不是if/else if.在我看来,很像使用goto,并导致相同类型的混乱代码,而相同的结果可以使用if/else,如果是更有条理的方式.

不过,我经常看到这些块.找到它们的一个常见位置是在消息循环(WndProc ...)附近,而这些是它们引发最严重破坏的地方之一:变量在整个块中共享,即使不是主要的(也不是在里面初始化).必须特别注意不要放弃休息,等等......

就个人而言,我避免使用它们,我想知道我错过了什么?

它们比if/else更有效吗?它们是否继承传统?

c c++ switch-statement conditional-statements

60
推荐指数
6
解决办法
4万
查看次数