【发布时间】:2019-10-03 18:14:39
【问题描述】:
我写了一段看起来像这样的代码。
public boolean check(String i){
if(i.isEmpty()){
doSomething();
return true;
}
else if(i.equals("something")){
doSomethingElse();
return true;
}
return false;
}
在代码审查期间,我收到了一条删除“else if”块的评论,因为第一个“if”块有一个返回语句,这使得另一个块无法访问。
所以我很好奇当每个块返回某些东西时,使用多个“if”语句是否比“else if”有任何优势。 是否通过使用多个 if 语句而不是“else if”来提高代码性能或可读性?在这种情况下,为什么首选多个“if”而不是“else if”? 我知道它们在功能方面是相同的。
【问题讨论】:
-
很难回答您的问题,因为前提不正确。 else-if 是绝对可以达到的。这里是否可能缺少一些可能使之成为现实的上下文?
-
可读性问题本质上是基于意见的。就个人而言,我会在没有
elses 的情况下写这个,但更多的是出于习惯而不是任何特定的信念,即它“更好”。 (当然没有性能差异) -
我把这个概念称为“平面代码”,这里只是松散地适用。基本上,与 嵌套 if 语句不同,您偶尔可以提取条件,以便 if 语句立即返回。不过,在这种情况下,唯一删除的代码是
else,所以这并不是一个真正的主要问题。 -
@Gary 我提供的代码中没有任何遗漏。字符串可能有也可能没有任何价值。
-
这个问题是基于意见的。但我会尽量避免在一种方法中多次返回
标签: java performance if-statement readability