当前位置: 首页 > 面试题库 >

为什么我们在主体是一个return语句时使用if,else if而不是多个if块

云利
2023-03-14
问题内容

我一直习惯使用if,else-if语句,而不是多个if语句。

例:

int val = -1;
if (a == b1) {
   return c1;
} else if (a == b2) {
   return c2;
} ...
...
} else {
   return c11;
}

与示例2相比如何?

if (a == b1) {
   return c1;
}
if (a == b2) {
   return c2;
}
....

if (a == b11) {
   return c11;
}

我知道功能上它们是相同的。但是,如果不是,则是否是最佳做法?当我指出他可以不同地构造代码库以使其更整洁时,它是由我的一位朋友提出的。对我来说这已经是一种习惯,但是我从来没有问过为什么。


问题答案:

if-elseif-else一旦找到正确的语句,它们就会停止进行比较。if-if-if做每个比较。第一个是更有效的。

编辑:
在注释中已指出您return在每个if块中都做了一个。在这些情况下,或者在控制权将离开方法的情况下(例外),执行多个if语句和执行if- elseif-else语句之间没有区别。

但是,if-elseif-else无论如何,最佳做法是使用。假设您更改了代码,以免您return在每个if块中都没有执行a
。然后,要保持效率,您还必须更改if-elseif-else成语。if-elseif- else从一开始就拥有它可以节省以后的编辑工作,并且对于阅读代码的人来说更加清楚(见证我刚才对代码的略读而给您带来的误解!)。



 类似资料:
  • 我正在学习亚当·简斯的合唱团教程。 数据是用这个代码块加载的 而准备就绪被定义为 我把这个序列理解为 首先-创建一个名为promises的数组,其中第一项是来自此链接的已解析json,第二项是来自该文件的id/值对的映射 第二,获取promise变量中的所有promise,如果成功,则触发函数ready,如果失败,则不执行任何操作 如果这是对的,那么相对于这样的东西有什么优势呢?我用伪代码写这个因

  • 问题内容: 对于我的工作,我必须开发一个小型Java应用程序,该应用程序可以解析非常大的XML文件(约30万行)以选择非常具体的数据(使用),因此我试图对其进行一些优化。我想知道这两个摘要之间哪个更好: 要么 其他详情: 这些if语句在循环内的每次迭代中执行(约20k次迭代) 的是一种在利用外部函数每次迭代计算 如果将设置为,则无需测试正则表达式是否匹配 谢谢你的帮助。 问题答案: 我遵循的一条黄

  • 请尝试使用一个开关,而不是太多的if语句。只是为了让我的代码更易读。因为switch只计算一个变量,我能在我的代码中使用switch吗,因为它看起来有点复杂。一个建议,请,因为所有有不同的元素选择使用css选择器。 提前谢谢。

  • 我目前正在修复别人的Java代码中的一个bug,但我无法解释这个bug。所讨论的代码是下面的if语句: 其中初始化为和函数如下所示: 令我困惑的是,即使被设置为false,代码仍然调用并执行函数。我一直认为这是不应该发生的短路。if语句本身总体上仍然被计算为false,因为只有第一个代码段中的else-block中的代码被执行。 那么,这个if语句为什么会有这样的行为呢?是短路失败,还是我误解了原

  • 问题内容: 谈论Java性能..哪个更好?if..else或多个if 要么 对您的想法感兴趣 谢谢! 问题答案: 在性能方面没有区别。选择最易读的选项,具体取决于代码的功能。 通常,不必担心这些微优化。只有在确定存在需要解决的性能问题后,才能进行优化。 “我们应该忘记效率低下的问题,大约有97%的时间是这样:过早的优化是万恶之源。” -唐纳德​​·努斯

  • 问题内容: 我只是想知道下面的if语句是否有效: 我的目标是确保同时满足以下2个要求:1. value [6]必须位于目标2.目标中的value [0]或value [1]如果我做了一个不好的例子,请道歉我的问题是,是否可以在一个语句中进行三个AND&OR?非常感谢! 问题答案: 使用 括号 将条件分组: 请注意,如果将定义为一组,则可以在固定时间内进行查找: 并且,正如@Pramod在评论中提到