2014-01-27 6 views
2

Это почти повторный пост из более раннего вопроса, который у меня был, но я изо всех сил пытался указать, где проблема, но я все еще не могу справиться с этой ошибкой.порождающее значение между случайными числами

У меня есть Google вокруг «генерации значения между случайными числами» и нашел этот пост How do I generate a random value between two numbers

И он чувствует, как им на правильном пути, но я до сих пор ошибка

Исключение в потоке " основной»java.lang.IllegalArgumentException: п должно быть положительным в java.util.Random.nextInt (Unknown Source) в test1.testvoid $ TestVoidMethod.main (testvoid.java:29)

, как сказано, ошибка указывает на мою строку 29

int randomInt = randomGenerator.nextInt(lastGuess); 

Любые предложения молодцов?

Random randomGenerator = new Random(); 
String result = ""; 

int[] myIntArray = new int[10]; 
int i = 0; 
int lastGuess = 1; 
result = checkWhichNumberThisIs(0); 

while (!result.equals("Equal")) { 
    if (result.equals("Higher")) { 
     int randomInt = randomGenerator.nextInt((10 - lastGuess + 1)) + lastGuess; 

     lastGuess = randomInt; 
     result = checkWhichNumberThisIs(randomInt); 

     System.out.println(lastGuess + " higher"); 

    } else if (result.equals("Lower")) { 

     int randomInt = randomGenerator.nextInt(lastGuess); 

     System.out.println(randomInt + " array"); 
     lastGuess = randomInt; 
      if (myIntArray.equals(randomInt)) { 
       result = checkWhichNumberThisIs(randomInt); 

       System.out.println(lastGuess + " lower"); 
      } 
     } 

    myIntArray[i] = lastGuess; 
    i++; 

} 
+4

Так что я думаю 'lastGuess> = 11' или' lastGuess <= 0'. – Keppil

+0

Ошибка для меня очень понятна: lastGuess становится отрицательным. –

+4

Весь ваш код поврежден. Вы сравниваете массив с целым числом для начала –

ответ

0

Это, очевидно, «домашнее задание» или «узнать упражнение» так вот «рецепт» для отыскания проблемы и ее исправление:

  1. Запустите IDE и переключиться в отладчик
  2. Установите точку останова в первой строке метода.
  3. Начните отладку, и когда программа попадет в точку останова, выполните один шаг и посмотрите, как изменяется lastGuess.
  4. Создайте мысленную картину того, что происходит (и почему), и сравните это с вашей мысленной картиной о том, как вы хотите программу для работы.
  5. Подумайте о том, как это исправить ...

Теперь мы могли бы сделать это для вас ... но >> Вы < < бы бесценок в этом процессе.

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