2014-04-10 44 views
0

我試圖創建10列和10行數字的兩個單獨的輸出。我知道我可以使用數字4到7執行第一個輸出,使用數字10到90執行第二個輸出。但是我有麻煩要使用數字901到999來執行第三個輸出。下面是我的Java代碼:要產生一個隨機輸出:從901到999的100個數字

import java.util.Random; 

public class LabRandom 
{ 

private static final Random rand = new Random(); 

public static void main(String[] args) 
{ 

    int number; 

    int i = 1; 

    while (i <= 100) 
    { 
     //number = rand.nextInt(4) + 4; 
     System.out.printf("%-5d", rand.nextInt(4) + 4); 

     if (i % 10 == 0) 
     { 
      System.out.println(); 
     } 
     i++; 
    } 
    System.out.println(); 

    i = 1; 

    while (i <= 100) 
    { 
     //number = rand.nextInt(4) + 4; 
     System.out.printf("%-5d", rand.nextInt(9)*10+10); 

     if (i % 10 == 0) 
     { 
      System.out.println(); 
     } 
     i++; 
    } 
    System.out.println(); 

    i = 1; 

    while (i <= 100) 
    { 
     //number = rand.nextInt(4) + 4; 
     System.out.printf("%-5d", rand.nextInt(100)*10); 

     if (i % 10 == 0) 
     { 
      System.out.println(); 
     } 
     i++; 
    } 

    }  
} 
+0

你的問題是什麼? – Rico

+0

如果你想要901到999,那麼你的nextInt應該是99而不是100.(當然,你需要添加901和**而不是**乘以10.) –

回答

1

我很難理解你想要什麼。如果你想每隔10個這樣的數字後,在900至999的範圍內創建100個隨機選擇的號碼的輸出,換行,嘗試添加這個循環將代碼:

i = 1; 
while (i <= 100) 
{ 
    // generate a random number from 0 to 100-1, 
    // then add 900 to transform the range to 900 to 999 
    System.out.printf("%-5d", rand.nextInt(100) + 900); 

    if (i % 10 == 0) 
    { 
     System.out.println(); 
    } 
    i++; 
} 
0

順便說一句,如果你真的想要打印數字10到90,你的第二個循環是不正確的。 現在你打印的10的倍數,從10到90,如10,20,30 ..... 90

對於之間的每個數字,你會想: rand.nextInt(80)+10

0
 // difference between the highest and the lowest value you want to have in your result 
     int range = 99; 
     // the lowest possible value you want to see in your result 
     int lowestValue = 901; 
     //note that you will never get the numbers 900 and 1000 this way, only between 
     int result = rand.nextInt(range) + lowestValue; 

您可能想要閱讀nextInt(值)究竟是什麼(在適當的IDE內容易完成,因爲它會提供JavaDoc工具提示,當然在這些常規的Java類中可用並且詳細)。