-4

哪个代码更好?在每种情况下使用 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);
}

什么对性能更好?

4

3 回答 3

2

性能上应该没有有意义的差异。编译器应该生成基本相同的指令。

于 2012-07-24T13:58:29.287 回答
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);
  }
}
于 2012-07-24T14:02:39.960 回答
0

您必须在数据集上进行测试。我找不到任何明显的区别。

我认为如果您在Code Review上发布此代码会更好

希望这有帮助!

于 2012-07-24T14:03:18.950 回答