因此,如果我创建一个应该返回值的方法,那么它不会。我知道我可以轻松地用void来做,但任何人都可以解释为什么循环不返回值这是一个简单的例子。
public static int EvenNumberGenerator(int y)
{
for (int x = 0; x <= y; x++)
{
if (x % 2 == 1)
{
continue;
}
return x;
}
}
我也尝试了移动继续部分,然后只用两个递增它,但它仍然会说不是所有路径都返回值。
答案 0 :(得分:5)
它仍然会说并非所有路径都返回值
它说,因为y<0
会发生什么?循环未运行且没有执行return
语句。
同样在你的情况下如果y>=0
它会立即返回(0),那就是你想要的吗?
答案 1 :(得分:1)
我相信你会稍微误解这个问题。
问题不在于循环没有退出,而是循环永远不会进入。
正如Giorgi所说,想象一下Y的值已经满足退出情况(x <= y) - 在这种情况下,永远不会输入for循环。