2011-07-07 15 views
0

我嘗試使用用戶定義的最大值和最小值生成一個數字的隨機數組時遇到了一些麻煩,我是編程新手,感覺有點失落我的代碼根據最大和最小用戶輸入在java中生成一個隨機數

int upperRange; 
int lowerRange; 
Random random = new Random(int)(Math.random()*(upperRange - (lowerRange-1)))+lowerRange; 

Scanner keyboard = new Scanner(System.in); 


{ 

System.out.println("Enter upper limit number "); 
upperRange = keyboard.nextInt(); 
System.out.println("Enter lower limit number"); 
lowerRange = keyboard.nextInt(); 

任何幫助,將不勝感激

+0

爲什麼會有那個大括號的事情嗎? '{',向我們展示整個'void'(功能) –

回答

4

r是Random類的一個實例,x和y是正整數,

r.nextInt(y - x) + x 

應該做些什麼 你要。它會給你一個在x(包括)到y(獨佔)範圍內的整數。

+0

是的,它會要求用戶爲數字猜謎遊戲定義最大/最小範圍 – pbj

+0

當我嘗試編譯時,出現編譯器錯誤 – pbj

+0

好聽,就像你只需要整數一樣。僅供參考,上面的答案假定x和y是正數,x <= y。此外,我應該提到,如果最大限制是一個合法的猜測,您需要r.nextInt(y - x + 1),但要小心y是Integer.MAX_VALUE且x爲0的情況。 –

1

試試這個:

public class TestRandomBounds { 

    public static void main(String[] args) { 

     int upperBound = 100; 
     int lowerBound = 50; 

     Random random = new Random(); 
     System.out.println(lowerBound + random.nextInt(upperBound - lowerBound)); 

    } 
} 

一旦隨機邊界的定義,你只需要生成將駐留在這些邊界內的隨機數。

0

你的代碼可以這樣寫:

import java.util.*; 

public class RandGuess 
{ 
    public static void main (String[] args) 
    { 
     int upperRange; 
     int lowerRange; 
     Random random; 
     int randomFromUserLimits; 

     Scanner keyboard = new Scanner(System.in); 

     System.out.print("Enter upper limit number: "); 
     upperRange = keyboard.nextInt(); 
     System.out.print("Enter lower limit number: "); 
     lowerRange = keyboard.nextInt(); 
     random = new Random(); 
     randomFromUserLimits = random.nextInt(upperRange-lowerRange) + lowerRange; 
     System.out.println("A random number between " + lowerRange + " and " + upperRange + " = " + randomFromUserLimits); 
    } 

} 
相關問題