2013-10-07 4 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

сейчас работает dreamlax. Я набрал «1», где мне нужно было использовать «i» в моем цикле for. Это была проблема. Спасибо за ответ, хотя – Learnin2Code

+0

Боковое примечание: прежде чем вы спросите следующий по этой теме (например, «почему я получаю плохой ответ за 35»), пожалуйста, ознакомьтесь с http://stackoverflow.com/questions/13222207/why-computing-factorial- из-real -ively-small-numbers-34-returns-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

Смежные вопросы