2014-10-11 91 views
-1

這是我得到的問題。 輸入2整數(x和y)並打印x和y之間的隨機整數。 我想知道爲什麼我的代碼不打印隨機整數。 我仍然是java的初學者,任何幫助都會很好。謝謝。Java中的隨機整數

import java.util.*; 
class Random_integer { 
    public static void main(String[] args) { 
     Random randomNum = new Random(); 
     Scanner input = new Scanner(System.in); 
     int integer1, integer2; 
     System.out.print("Enter two integer : \n "); 
     System.out.print("\n Integer 1 : "); 
     integer1 = input.nextInt(); 
     System.out.print("\n Integer 2 :"); 
     integer2 = input.nextInt(); 
     randomNum = new Random(integer1, integer2); 
     System.out.print("\n Random number : " +randomNum); 
    } 
} 
+2

'randomNum'是一個隨機對象(隨機數發生器)。你需要在你的Random對象上調用一個*方法來生成一個整數。 – khelwood 2014-10-11 14:21:55

回答

1

嘗試下面的代碼。 randomize(int x, int y)中的參數其中x是最小數字 和y是最大數字。

import java.util.*; 

class Random_integer 
{ 
    public static void main(String[] args){ 
     int integer1, integer2; 
     Scanner input = new Scanner(System.in); 
     System.out.print("Enter two integer : \n "); 
     System.out.print("\n Integer 1 : "); 
     integer1 = input.nextInt(); 
     System.out.print("\n Integer 2 :"); 
     integer2 = input.nextInt(); 

     Random_integer ri = new Random_integer(); 
     ri.randomize(integer1,integer2); 
    } 

    public void randomize (int x,int y) { 
     Random randomNum = new Random(); 
     int rand = randomNum.nextInt((y-x)+1)+x; 
     System.out.print("\n Random number : " +rand); 
    } 
} 
0

java.util.Random是一個隨機數發生器,而不是一個數字。您可以使用它產生像這樣的隨機整數:

Randrom rand = new Random(); 
int randomNum = x + rand.nextInt(y - x + 1); 
1

java.util.Random是用來產生隨機數的類。構造函數不走最小值和最大值作爲參數,但nextInt()方法你想要做什麼:

randomNum = new Random(); 
System.out.println("Random number: " + random.nextInt(integer1, integer2)); 
+0

「隨機(長種子)」被廣泛用於可重複測試等。 – chrylis 2014-10-11 20:03:06

+0

@chrylis我在哪裏使用'隨機(長種子)'? – msrd0 2014-10-11 20:04:28

+0

說「構造函數不帶參數」是不準確的。當然有一個默認的構造函數,但也有一個常用的構造函數。 – chrylis 2014-10-11 20:13:21

1

你調用Random構造不當,Random(integer1, integer2)不能編譯,因爲Random沒有一個構造函數這需要兩個整數參數。

如果你想創建一個範圍內的隨機數,使用:

int rand = randomNum.nextInt((integer2 - integer1) + 1) + integer1