Простая ошибка Java - PullRequest
       3

Простая ошибка Java

0 голосов
/ 29 октября 2011

Это факторная программа в Java, она не работает, пожалуйста, дайте мне знать об ошибках. Спасибо!

class Fact {
   public static void main(String[] args) {

      int i=5,num=1;

      while(i>1) {
         num=num*i;
      }
      i--;

      System.out.println("Value: " + num);      
   }
}

Ответы [ 2 ]

4 голосов
/ 29 октября 2011

Вы уменьшаете переменную i вне цикла while, когда она должна быть внутри него.

  while(i>1)
  {
     num=num*i;
  }
  i--;

Должно быть:

  while(i>1)
  {
     num=num*i;
     i--;
  }

То, что говорит ваш текущий код, это while *i* is greater than 1 do your multiplication. Проблема в том, что i всегда будет больше 1, так как вы никогда не вычитаете его.

0 голосов
/ 29 октября 2011
  1. Использовать декремент i внутри цикла
  2. Добавить проверку на отрицательное значение (вы также должны обработать значение 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...