我使用这个随机数生成器,它工作正常但我需要一个范围(例如16-20)的数字,但我不能让它工作。我不知道该怎么做。
for (int i = 1; i <= 1; i++) {
int RandomAttack = (int) Math.random() * 20;
System.out.println(RandomAttack);
}
我需要最简单的代码。
答案 0 :(得分:1)
确保您已将Random导入并初始化为Random random = new Random();
如下:
int randomNumber = random.nextInt(max - min) + min;
在你的情况下
int randomNumber = random.nextInt(20 - 16) + min;
仅此一项就可以在范围内获得所需的价值。不要忘记在课堂上导入Java的Random类。
另外,我不太了解你那边的循环点。我错过了一些明显的东西,或者只是一次迭代?
这是一个类示例:
import java.util.Random;
public class RandomRange {
private static Random random;
public static void main(String[] args) {
random = new Random();
System.out.println(random.nextInt(20 - 16) + 16);
}
}
答案 1 :(得分:1)
Math.random()只返回0..1范围内的数字。您可以通过乘以范围并添加最小值来缩放此值。
或者使用java.util.Random(),它有一个方便的方法nextInt(),它将在0和&lt;之间返回。值。
所以你需要去0&lt; = value&lt; 5具有值0,1,2,3,4
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
Random random = new Random();
for (int i = 1; i <= 10; i++) {
int value = 16 + random.nextInt(5);
System.out.println(value);
}
}
}