2016-04-05 13 views
0

Şimdiye kadar sahip olduğum şey, ancak programın kullanıcının çalışmaya izin vermeden işlemin tamamlandığını bildirmesi Devam etmek için 1 veya 2 girin. Şimdiden teşekkürler ..Kullanıcıdan yeni bir rasgele sayı kümesi oluşturmak isteyip istemediklerini sormak için gönderilen bir Dış Süre Döngüsü kullanın

Kodum:

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

Sen Stdout'a istemi yazma, ancak stdin'den kullanıcı yanıtını okunmuyor, böylece program baskılar istemi ve tutar – DBug

+1

gidiyoruz http://ericlippert.com/2014/03/05/how-to-debug- kendi kodunuzu küçük programlar/hata ayıklama iyi bir beceridir. – jdv

cevap

0

Sen System.in dan ziyade generator.nextInt değeri okumalıyız().

Düzeltilmiş kod İşte.

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

Zamanında yanıt ve yardım için herkese teşekkür ederiz. Şimdi çok daha mantıklı geliyor ... bazen sadece başka bir göze ihtiyaç var! – kidbone222

+0

@ kidbone222 cevabınız sizin için doğru ve yararlı ise lütfen cevabı kabul edin –

+0

@ Raghu K Nair, Şimdi bir hata mesajı alıyorum: Kidwell_Lab09.java:16: error: sembolü bulamıyor Tarayıcı inputReader = new Scanner (Sistem. içinde); ^ sembolü: sınıf Tarayıcı konum: sınıf Kidwell_Lab09 Kidwell_Lab09.java:16: hata: sembolü bulamıyor Tarayıcı inputReader = new Scanner (System.in); ^ sembolü: sınıf Tarayıcı konum: sınıf Kidwell_Lab09 – kidbone222

İlgili konular