2013-03-02 2 views
-2

В следующей программе задается вопрос, какой диапазон чисел он хотел бы генерировать 10 случайных чисел, однако, как только пользователь вводит свой выбор, напечатанные номера одинаковы?Math.random выводит 10 случайных чисел, но они все одинаковые числа?

import java.io.*; 

public class RandomInt 
{ 
    public static void main (String [] args) throws IOException 
    { 
     String inGuess; 
     int theGuessInt = 0; 
     int theNum; 
     int theNum2; 
     BufferedReader myInput = new BufferedReader (new InputStreamReader (
       System.in)); 
     System.out 
       .println ("Hello this program generates random numbers from 0-10 or 20-30"); 
     System.out 
       .println ("Please input '1' for the random generation of 0-10, or '2' for the generation of 20-30"); 
     inGuess = myInput.readLine(); 
     theGuessInt = Integer.parseInt (inGuess); 
     // Generate random numbers from 0 to 10 
     theNum = (int) (Math.random() * 10 - 0) + 0; 
     // Generate random numbers from 20 to 30 
     theNum2 = (int) (Math.random() * 30 - 20) + 20; 
     if (theGuessInt == 1) 
     { 
      System.out 
        .println (" You chose to generate ten random numbers from 0-10"); 
      System.out.println (" Please wait....(Press any key to con't)"); 
      inGuess = myInput.readLine(); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
      System.out.println (theNum); 
     } 
     if (theGuessInt == 2) 
     { 
      System.out 
        .println (" You chose to generate ten random numbers from 20-30"); 
      System.out.println (" Please wait....(Press any key to con't)"); 
      inGuess = myInput.readLine(); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
      System.out.println (theNum2); 
     } 
    } 
} 
+2

формат код – user1428716

ответ

1

Следующий код явно печатает же число в 10 раз:

System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 
System.out.println (theNum); 

Попробуйте сделать:

System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
System.out.println ((int) (Math.random() * 10 - 0) + 0); 
+0

Итак, как я исправить это, это ужасный ответ, потому что вы решили игнорировать мой вопрос! – user2109589

+0

Спасибо, что работает! – user2109589

6

Ну, что вы делаете:

System.out.println(theNum); 
System.out.println(theNum); 
System.out.println(theNum); 
System.out.println(theNum); 
System.out.println(theNum); 
System.out.println(theNum); 
System.out.println(theNum); 
System.out.println(theNum); 
System.out.println(theNum); 

Это печатает один и тот же номер десять раз. Вам необходимо либо назначить theNum перед каждым println(), либо сохранить числа в массиве и распечатать их в цикле.

+0

как бы я назначить theNum перед каждым Println()? – user2109589

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