我是Java的新手,我正试图制作一个arraylist。
我做了一个小程序,要求用户输入一些骰子:
System.out.println("How many dices do you want to throw?");
int diceAmount = input.nextInt();
然后我做了一个循环来打印骰子,但我不能让它使骰子的数量是随机的。我必须用随机结果计算总骰子:
for (int i = 1; i <= diceAmount; i++) {
System.out.print(i + "-");
答案 0 :(得分:2)
Random rand = new Random();
(int i = 1; i <= diceAmount; i++) {
// roll the dice once
int roll1 = rand.nextInt(6) + 1;
System.out.print(i + "-" + roll1);
}
更新:
这是总结数字的方法。所以,假设你每次掷2个骰子。
Random rand = new Random();
// roll the dice once
int roll1 = rand.nextInt(6) + 1;
int roll2 = rand.nextInt(6) + 1;
sum = roll1 + roll2;
System.out.println("You got " + sum + ". Not bad!");
答案 1 :(得分:1)
对于每个模具卷,您需要一个随机数(如果是传统模具,可能是1-6)。所以你的循环是正确的,但循环体需要修复:
for(int i = 0; i < diceAmount; i++){ //repeats diceAmount times
//Do loop stuff.
}
要获得随机数,请从Math.random()
开始。这将在double
范围内返回随机[0 .. 1)
。这意味着0
是有效的回报,但1
不是。从那里我们想要扩展范围达到6。
Math.random() * 6
返回[0 ..6)
范围内的随机双精度数。我们需要整数,而不是双打,所以让我们去投整。
(int)(Math.random() * 6)
返回[0 .. 6)
范围内的随机 int - &gt; [0 .. 5]
。从那里,只需添加1。
(int)(Math.random() * 6) + 1
将返回[1 .. 6]
范围内的随机int,这正是您的目标。所以一起:
for(int i = 0; i < diceAmount; i++){
int dieRoll = (int)(Math.random() * 6) + 1;
System.out.println(dieRoll);
}
答案 2 :(得分:0)
使用Math.random()
随机化您的骰子数量。有很多重载版本的random()
方法。阅读Oracle文档中的Java.Math。