C#中的Bool方法

Pou*_*yan 0 c# boolean

我想让WinFormApp计算100到1000之间的Prime数,并将它们显示在"lb"列表框中.但我面临这个错误:

WinFormApp1.Form1.pn(int)':并非所有代码路径都返回一个值

bool pn(int n)
{
    for (int j = 2; j <= n; j++)
    {
        if (n % j != 0)
            return false;
        return true;
    }
}


private void button1_Click(object sender, EventArgs e)
{
    for (int i = 100; i <= 1000; i++)
    {
        if (pn(i) == true)
            lb.Items.Add(i);
    }
} 
Run Code Online (Sandbox Code Playgroud)

Jon*_*nna 10

你只是return true错误地把你的内部放在循环中.除了给出不正确的结果之外,编译器还可以看到,如果循环结束,则不会返回任何值,因此编译错误.

bool pn(int n)
{
    for (int j = 2; j <= n; j++)
    {
        if (n % j != 0)
            return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)