2016-04-05 3 views
0

Это то, что у меня есть до сих пор, но по какой-то причине программа заявляет, что операция завершена, не позволяя пользователю введите 1 или 2, чтобы продолжить или нет. Заранее спасибо ..Используйте внешний цикл While, который отправляется дозорным, чтобы спросить пользователя, хотите ли они создать новый набор случайных чисел

Мой код:

import java.util.Random; 
public final class Kidwell_Lab09 { 
    public static Random generator = new Random(); 
    public static void main(String[] args) { 
     int x; 

     int[] randomNumbers = new int[20]; 

     do 
     { 
      Random generator = new Random(); 
      for (int i = 0; i < randomNumbers.length; i++){ 
       int n = generator.nextInt(10)+1; 
       randomNumbers[i] = n; 
      } 

      for (int i = 0; i < randomNumbers.length; i++) { 
       System.out.println("Number " + i + " : " + randomNumbers[i]); 
      } 
      System.out.print("Do you wish to restart the program, Enter 1 for YES, 2    for NO: "); 
      x = generator.nextInt(); 
     } 
     while (x == 1); 
    } 
} 
+0

Вы пишете запрос на стандартный вывод, а не чтение ответа пользователя из стандартного ввода, поэтому программа печатает приглашение и продолжает идти – DBug

+1

http://ericlippert.com/2014/03/05/how-to-debug- небольшие программы/отладка вашего собственного кода - хороший навык. – jdv

ответ

0

Вы должны читать значения из System.in, а не от generator.nextInt().

Вот исправленный код.

import java.util.Random; 
public final class Kidwell_Lab09 { 
    public static Random generator = new Random(); 

    public static void main(String[] args) { 
     int x; 

     int[] randomNumbers = new int[20]; 
     Scanner inputReader = new Scanner(System.in); 
     do { 
      Random generator = new Random(); 
      for (int i = 0; i < randomNumbers.length; i++) { 
       int n = generator.nextInt(10) + 1; 
       randomNumbers[i] = n; 
      } 

      for (int i = 0; i < randomNumbers.length; i++) { 
       System.out.println("Number " + i + " : " + randomNumbers[i]); 
      } 
      System.out.print("Do you wish to restart the program, Enter 1 for YES, 2    for NO: ");    
      x = inputReader.nextInt(); 
     } while (x == 1); 
    }  
} 
+0

Спасибо всем за своевременный ответ и помощь. Теперь он имеет гораздо больше смысла ... иногда нужен еще один набор глаз! – kidbone222

+0

@ kidbone222, если ответ верный и полезный для вас, пожалуйста, примите ответ –

+0

@ Raghu K Nair, я получаю сообщение об ошибке сейчас: Kidwell_Lab09.java:16: ошибка: не найден символ Scanner inputReader = новый сканер (System. в); ^ знак: класс Сканер местоположение: класс Kidwell_Lab09 Kidwell_Lab09.java:16: ошибка: не найден символ Вход сканераReader = новый сканер (System.in); ^ символ: класс Сканер местоположение: класс Kidwell_Lab09 – kidbone222

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