2016-03-07 3 views
0
public class LockPicker { 
    public static void main(String[] args) { 
     System.out.println ("Picking the lock..."); 
     boolean lock = false; 
     while (lock==false) 
     { 
      int counter = 0; 
      int number = (int)(Math.random() * 99 + 1); 
      System.out.println(number); 
      if (number!=55){ 
       lock = false; 
       ++counter; 
      }else{ 
       lock = true; 
       System.out.println("That took "+counter+" tries!"); 
      } 
     } 
    } 
} 

Здравствуйте,Добавление 1 на целое число каждый раз?

Я поставил задачу, где я должен написать программу, которая будет генерировать случайные числа в диапазоне от 10 до 99. Программа следует продолжать повторять до тех пор, число 55 не создается. Программа должна выводить как множество попыток сделать ее 55.

Он отлично работает и останавливается, когда достигает 55. Однако счетчик всегда остается равным 0. Он никогда не добавляет 1 на счетчик переменных.

+2

'INT счетчика = 0;' на вершине цикла. – Tunaki

+0

Важным уроком здесь является область видимости переменной *. [См. Здесь] (http://www.java-made-easy.com/variable-scope.html) для упрощенного объяснения - возможно, это поможет вашему пониманию. –

+0

Ваш код можно упростить. Вам не нужно 'boolean lock' вообще. Вы можете использовать что-то, называемое 'break'. Также не нужно предложение 'else'. У вас может быть '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ломать; } ' – Gendarme

ответ

4

Перемещение линии int counter = 0; до цикла while.

Everytime прогоны цикла, вы инициализация counter переменных в 0, поэтому она всегда остается 0.

+0

Спасибо, это сработало! – JoeMaynard

+0

@ JoeMaynard вы можете принять ответ, нажав на большую галочку, кроме ответа, если это вам поможет. – Atri

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