Java如何生成一定范围内的随机数? [复制]
Posted
技术标签:
【中文标题】Java如何生成一定范围内的随机数? [复制]【英文标题】:How can I generate a random number within a certain range with Java? [duplicate] 【发布时间】:2017-11-06 20:37:59 【问题描述】:我想在 Java 中生成一个随机数。它可以是整数、字节或浮点类型,但我真正需要的是生成一个随机数。这就是我正在做的:
-
生成一定范围内的随机数(例如 5 到 20)。
获取数字并将其存储在变量中。
对其进行算术运算。
代码如下:
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!");
【问题讨论】:
Have - you - Googled - anything? 【参考方案1】:在 Java 1.7+ 中,您可以在 one line 中执行此操作(不包括导入语句;):
import java.util.concurrent.ThreadLocalRandom;
int actionPoints = ThreadLocalRandom.current().nextInt(5, 21); // 5 to 20 inclusive
【讨论】:
【参考方案2】:试试这个:
int lower = 12;
int higher = 29;
int random = (int)(Math.random() * (higher-lower)) + lower;
【讨论】:
是import math
使用的代码吗?
不,你不必导入数学类【参考方案3】:
您可以通过多种方式生成随机数。其中两个是:
Math.random(); // Random values ranging from 0 to 1
Random rand; rand.nextInt(x); // Random int ranging from 0 to x
要指定确切的范围,您可以执行以下操作:
int RandomNumber = Min + (int)(Math.random() * Max);
【讨论】:
以上是关于Java如何生成一定范围内的随机数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章