一尘不染

c#返回错误“并非所有代码路径都返回值”

c#

我正在尝试编写返回给定整数是否可以被1到20整除的代码,
但我一直收到以下错误:

错误CS0161:“ ProblemFive.isTwenty(int)”:并非所有代码路径都返回值

这是我的代码:

public static bool isTwenty(int num)
{
    for(int j = 1; j <= 20; j++)
    {
        if(num % j != 0)
        {
            return false;
        }
        else if(num % j == 0 && num == 20)
        {
            return true;
        }
    }
}

阅读 429

收藏
2020-05-19

共1个答案

一尘不染

您缺少return声明。

当编译器查看您的代码时,它会看到else可能会发生的第三条路径(您未为其编写代码),但未返回任何值。因此not all code paths return a value

对于我建议的修复程序,我return在循环结束后加上了a 。另一个明显的地方-向中添加一个else具有return值的if-else- if-会破坏for循环。

public static bool isTwenty(int num)
{
    for(int j = 1; j <= 20; j++)
    {
        if(num % j != 0)
        {
            return false;
        }
        else if(num % j == 0 && num == 20)
        {
            return true;
        }
    }
    return false;  //This is your missing statement
}
2020-05-19