哪个代码更好? 在每种情况下使用return():
void someProc(String str) {
if (str.length < 1) {
log("bad length");
return();
}
if (str.charAt(3) == "N") {
log("N at 3");
return();
}
parse(str);
}
或不带return()的子条件:
void someProc(String str) {
if (str.length < 1) log("bad length");
else if (str.charAt(3) == "N") log("N at 3");
else parse(str);
}
有什么好的表现?
答案 0 :(得分:2)
性能应该没有任何有意义的差异。编译器应该生成基本相同的指令。
答案 1 :(得分:0)
这类问题通常会引起强烈而暴力的争论。
对我来说,我更喜欢仅在返回值时使用return,因为我认为空返回可能会令人困惑(例如,“程序员忘记输入变量名称”)并且我不介意多个出口点。我会按如下方式编写someProc:
void someProc(String string)
{
if (str.length < 1)
{
log("bad length");
}
else if (str.charAt(3) == "N")
{
log("3 is N");
}
else
{
parse(str);
}
}
答案 2 :(得分:0)