不从循环返回值

时间:2016-03-31 16:46:48

标签: c# loops methods return

因此,如果我创建一个应该返回值的方法,那么它不会。我知道我可以轻松地用void来做,但任何人都可以解释为什么循环不返回值这是一个简单的例子。

public static int EvenNumberGenerator(int y)
{
    for (int x = 0; x <= y; x++)
    {
        if (x % 2 == 1)
        {
            continue;
        }

        return x;
    }
}

我也尝试了移动继续部分,然后只用两个递增它,但它仍然会说不是所有路径都返回值。

2 个答案:

答案 0 :(得分:5)

  

它仍然会说并非所有路径都返回值

它说,因为y<0会发生什么?循环未运行且没有执行return语句。

同样在你的情况下如果y>=0它会立即返回(0),那就是你想要的吗?

答案 1 :(得分:1)

我相信你会稍微误解这个问题。

问题不在于循环没有退出,而是循环永远不会进入。

正如Giorgi所说,想象一下Y的值已经满足退出情况(x <= y) - 在这种情况下,永远不会输入for循环。