Java 如果then子句无论如何退出该方法,则使用“else”的赞成/反对
这两种方法中哪一种更好?为什么Java 如果then子句无论如何退出该方法,则使用“else”的赞成/反对,java,if-statement,return,Java,If Statement,Return,这两种方法中哪一种更好?为什么 if(list.isEmpty()) { return; } else { [...] } vs 如果键入: if(list.isEmpty()) { return; } else { [...] } 如果第一个块不是真的,并且使用以下命令时,可以添加一些代码来处理else块: if(list.isEmpty()) { return; } [...] 您实际上是在说:如果失败了,我不想做任何事情。第一种方法中的els
if(list.isEmpty()) {
return;
} else {
[...]
}
vs
如果键入:
if(list.isEmpty()) {
return;
} else {
[...]
}
如果第一个块不是真的,并且使用以下命令时,可以添加一些代码来处理else块:
if(list.isEmpty()) {
return;
}
[...]
您实际上是在说:如果失败了,我不想做任何事情。第一种方法中的else是多余的,因为return语句
对于在特定条件下提前停止评估的情况,第二种方法更好,因为它降低了嵌套级别。这在多次执行返回或抛出的提前停止时变得尤为重要:
if (arg1 == null) {
throw new IllegalArgumentException();
} else {
if (arg2 == null) {
throw new IllegalArgumentException();
} else {
if (arg3 == null) {
throw new IllegalArgumentException();
} else {
... // Payload code goes here
}
}
}
它的可读性不如
if (arg1 == null) {
throw new IllegalArgumentException();
}
if (arg2 == null) {
throw new IllegalArgumentException();
}
if (arg3 == null) {
throw new IllegalArgumentException();
}
... // Payload code goes here
上面的示例使用throw,但return的参数相同。if!isEmpty{…做点什么}我肯定会选择第二个选项。尽早返回-如果您已经获得无效数据/条件,则没有理由继续。这样做的另一个好处是减少了嵌套,使代码更具可读性@khelwood的方法虽然完全有效,但将整个方法缩进一个制表符。@khelwood这会使我的代码不那么容易阅读,因为我只想在出现错误时返回false,例如,当给定列表为空时……另请参见:这只是对代码中明显的内容的解释。如果你要回答一个基于观点的问题;请给出你的意见。
if (arg1 == null) {
throw new IllegalArgumentException();
}
if (arg2 == null) {
throw new IllegalArgumentException();
}
if (arg3 == null) {
throw new IllegalArgumentException();
}
... // Payload code goes here