根据max和min的用户输入在java中生成随机数

时间:2011-07-07 22:08:27

标签: 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();

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:4)

其中r是Random类的实例,x和y是正整数,

r.nextInt(y - x) + x

应该做你想做的事。它会给你一个x(包括)到y(不包括)范围内的整数。

答案 1 :(得分: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));

     }
}

定义随机边界后,您只需要生成一个驻留在这些边界内的随机数。

答案 2 :(得分: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);
    }

}