【发布时间】:2025-06-22 14:25:01
【问题描述】:
我可以找到与此类似的问题,但我无法找到我期望的这个特定案例的答案。
public int getIndex(){
for(int x = 0; x < 5; x++) {
return x;
}
}
当我执行这段代码时,我得到一个编译错误,说“缺少返回语句”。但是,据我所知,很明显 for 循环中的代码将毫无疑问地执行,因为第一次 x=0。因此,对于这种特殊情况,没有任何情况不执行 for 循环内的代码。 那么,为什么我们还需要在 for 循环之外声明一个额外的 return 语句呢?
【问题讨论】:
-
这是真实的代码吗?你可以把它改成返回0。你能举一个真实的例子吗?
-
伙计们,这显然是一个理论问题,他在问为什么我们需要在
for循环之外有一个return才能正常工作,即使它显然永远不会达到另一个return。 -
@JoakimDanielson 代码确实有意义。它不是特别有用(从功能上讲),但它使问题变得相当清晰。
-
@Joakim Danielson 我指的是那些试图“修复”代码并询问代码用例的人,代码的 use 无关紧要,他想知道是为了知识,但这并不意味着它一定会有用。而且很多人都清楚他的意思,所以我认为代码还不错。
-
@JoakimDanielson 不,这就是重点。这不是逻辑错误。这只是糟糕的代码。就像每天在这里发布的大量错误代码一样。如果人们没有发布错误的代码(甚至是逻辑错误),这个网站就不需要存在。此外,我希望我的编译器能够检测到实际的逻辑错误,但是,可惜它没有。