如何使用Java在一定范围内生成随机数?

How can I generate a random number within a certain range with Java?

本问题已经有最佳答案,请猛点这里访问。

我想在Java中生成一个随机数。 它可以是整数,字节或浮点类型,但我真正需要的是生成一个随机数。 这就是我正在做的事情:

  • 生成一定范围内的随机数(例如5到20)。
  • 取数字并将其存储在变量中。
  • 对它执行算术运算。
  • 这是代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import java.util.HashMap;

    public class Attack {
        public static void main(String[] args) {
            HashMap<String, Integer> attacks = new HashMap<String, Integer>();
            attacks.put("Punch", 1);
            attacks.put("Uppercut", 3);
            attacks.put("Roundhouse Kick", 5);

            int actionPoints = // Code for random number generation

            System.out.println("A brigade integrant appeared!");
            System.out.println("What do you do?");
            System.out.println("1: Punch [1 AP], 2: Uppercut [3 AP], 3: Roundhouse Kick [5 AP]");
            System.out.println("You have" + actionPoints +" Action Points.");
            Scanner reader = new Scanner(System.in);
            System.out.println("Enter a number:");
            int n = reader.nextInt();
            reader.close();

            if n == 1 {
                System.out.println("The brigade integrant takes 2 HP of damage!");
            }
            else if n == 2 {
                System.out.println("The brigade integrant takes 5 HP of damage!");
            }
            else if n == 3 {
                System.out.println("The brigade integrant takes 8 HP of damage!");
            }
        }
    }


    在Java 1.7+中,您可以在一行中完成(不包括import语句;):

    1
    2
    3
    import java.util.concurrent.ThreadLocalRandom;

    int actionPoints = ThreadLocalRandom.current().nextInt(5, 21); // 5 to 20 inclusive

    试试这个 :

    1
    2
    3
    4
    int lower = 12;
    int higher = 29;

    int random = (int)(Math.random() * (higher-lower)) + lower;


    您可以通过多种方式生成随机数。 其中两个是:

    1
    2
    3
    Math.random(); // Random values ranging from 0 to 1

    Random rand; rand.nextInt(x); // Random int ranging from 0 to x

    要指定确切的范围,您可以执行以下操作:

    1
    int RandomNumber = Min + (int)(Math.random() * Max);