2013-10-07 36 views
0

我有一個簡單的程序,應該計算輸入數字的階乘。它說我沒有錯誤,但是當我運行該程序時,它失速並且不起作用。有人可以告訴我爲什麼嗎?在C#中計算階乘 - 沒有錯誤,但不起作用?

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(); 
      } 
     } 
    } 
} 

}

+0

你提供什麼價值的輸入? – dreamlax

+0

它現在起作用了。我在我的循環中需要使用「我」的地方輸入了「1」。這是問題。謝謝你的回覆,雖然 – Learnin2Code

+0

附註:在你問下一個關於這個主題(如「爲什麼我得到壞的答案爲35」)之前,請檢查http://stackoverflow.com/questions/13222207/why-computing-factorial- 34-退貨0/13222515#13222515 –

回答

4

總是讓我們變得簡單的事情。

在你的循環,你有這樣的:

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

我相信你的意思是這樣的:

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

在循環的條件部分,你使用的「1」,而不是「我」。

+0

是的。非常感謝你。這是問題所在 – Learnin2Code

3

你的條件是關閉您for循環。我想你想要i <= userNumber

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

啊,是的!謝謝。我沒有看到這個令人沮喪的小錯誤:)現在有效 – Learnin2Code