我使用这个随机数发生器,它工作正常,但我需要一个范围(例如16-20)的数字,但我无法让它工作。我不知道该怎么做。使用随机数发生器和循环的代码
for (int i = 1; i <= 1; i++) {
int RandomAttack = (int) Math.random() * 20;
System.out.println(RandomAttack);
}
我需要最简单的代码。
我使用这个随机数发生器,它工作正常,但我需要一个范围(例如16-20)的数字,但我无法让它工作。我不知道该怎么做。使用随机数发生器和循环的代码
for (int i = 1; i <= 1; i++) {
int RandomAttack = (int) Math.random() * 20;
System.out.println(RandomAttack);
}
我需要最简单的代码。
的Math.random()将只在范围0..1返回号码。您可以通过按范围进行多重缩放并添加最小值来缩放。
或使用java.util.Random(),这有一个方便的方法nextInt()它将返回0和<值之间。
所以你需要去0 < =值< 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);
}
}
}
请确保您有您的随机进口的初始化,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);
}
}
'的for(int i = 1; I <= 1;我++)'?只需一次迭代就可以完成循环的重点是什么?你想做什么? – 2014-09-28 13:41:39
你的意思是'int RandomAttack = 16 +(int)(Math.random()* 5);' – 2014-09-28 13:42:04
如果你将有一个循环和1个独特的迭代,那么你可以删除循环 – 2014-09-28 13:44:41