0

入力された数値の階乗を計算することになっている簡単なプログラムがあります。エラーはありませんと表示されますが、プログラムを実行すると停止して機能しません。誰かが理由を教えてもらえますか?

    private void getFactorial_Click(object sender, EventArgs e)
    {
        int userNumber, numberFactorial = 1;

        userNumber = int.Parse(numberInput.Text);
        if (userNumber <= 0)
        {
            numberOutput.Text = numberFactorial.ToString();
        }
        else
        {
            for (int i = 1; 1 <= userNumber; i++)
            {
                numberFactorial = numberFactorial * i;
                numberOutput.Text = numberFactorial.ToString();
            }
        }
    }
}

}

4

2 に答える 2

4

私たちを惹きつけるのは、常に単純なことです。

あなたのループにはこれがあります:

for (int i = 1; 1 <= userNumber; i++)

私はあなたがこれを意味すると信じています:

for (int i = 1; i <= userNumber; i++)

ループの条件部分で、「i」ではなく「1」を使用しました。

于 2013-10-07T00:19:09.980 に答える
3

forループの条件がオフになっています。欲しいと思いますi <= userNumber

for (int i = 1; i <= userNumber; i++)
于 2013-10-07T00:15:25.193 に答える