不必要的其他陈述:当只使用IF时,使用ELSE IF有什么不利之处吗?

Mbw*_*Mbw 3 c c++ optimization

考虑以下示例的速度(请忽略这个例子是完全荒谬的):

int multiply(int a, int b) {
  if (a == 0 || b == 0) {
    return 0;
  }
  if (a == b) {
    return pow(a, 2);
  }
  return a*b;
}
Run Code Online (Sandbox Code Playgroud)

int multiply(int a, int b) {
  if (a == 0 || b == 0) {
    return 0;
  } else if (a == b) {
    return pow(a, 2);
  } else {
    return a*b;
  }
}
Run Code Online (Sandbox Code Playgroud)

显然,这里并不是真的有必要,但是当我处理复杂的操作时,我发现在格式化后者时更容易阅读.是否需要更长时间才能在第二个配置中运行?我会牺牲什么吗?

Raf*_*ael 6

编辑:首先回答OP问题,然后讨论一般情况.

Sepcific-to-your-problem答案:在你的情况下,由于你有回报,在每种条件下,它都会脱离流量控制.在一般情况下,必要时将它们链接起来会更好.

一般答案:是的,基本上当你只使用if时,你的程序正在检查所有条件,即使其中一个条件得到满足.

在执行if,else-if,else的链时,一旦满足其中一个条件,该链中的所有其他条件将被忽略.