在 Java 中,当您在 void
函数中使用 return;
语句而不是让函数通过到达其末尾来结束时,会发生什么情况?有什么区别吗?
例如,可能存在一些逻辑差异(以及编译时间问题),例如
public void foo() {
if (true) {
return;
}
doSomething();
}
此时我们永远不会执行doSomething()
。然而,这不是我所说的。我说的是:
public void foo1() {
doSomething();
return;
}
对比
public void foo2() {
doSomething();
}
这与机器级别的处理方式有什么不同吗?
最佳答案
引用此Oracle doc.
任何声明为 void 的方法都不会返回值。
向此类方法添加“return”语句是可选的。
“return”语句的唯一目的是分支出控制流 block 并退出该方法。
public void foo1() {
return;
doSomething(); //compiler error.
}
因此,
public void foo1() {
doSomething();
return;
}
和
public void foo2() {
doSomething();
}
技术上是相同的。
关于java - 在 void 函数中使用 Return 的底层分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42895228/