为什么变量a和b没有得到任何值? 我这样做是为了将100边的数字1-100骰子掷出50.000次,我想看看它多久给一次数字1和100,但没有任何价值。结果仍然是a = 0和b = 0。
package Atest;
import javax.swing.*;
public class Tärning5{
public static void main(String[] arg){
int rolls;
double dice = (int) (Math.random()*100) + 1;
int n = 0;
int b=0, a=0;
for(rolls=50000; n<=rolls; dice = (int) (Math.random()*100) + 1) {
n++;
if(dice == 100)
a = a++;
else if (dice == 1)
b = b++;
}
JOptionPane.showMessageDialog(null, "Dice rolls " + rolls + " times"
+ "\n"
+ "\nDice landed on 100 " +a+" times"
+ "\nDice landed on 1 "+b+" times");
}
}
答案 0 :(得分:0)
我建议使用java.util.Random生成随机数。您还可以简化循环,这样会更直接。
int a = 0;
int b = 0;
int rolls = 50000;
Random random = new Random();
for (int i = 0; i < rolls; i++) {
int dice = random.nextInt(100) + 1;
if (dice == 100) a += 1;
if (dice == 1) b += 1;
}
System.out.println("a: " + a + ", b: " + b);
“ for”语句中的条件除了迭代计数外没有引用其他任何内容。在循环内部,我们可以使用现有的Random(随机)创建下一个随机int(在此示例中:在1到100之间的范围内)来“模拟”骰子掷骰。
示例输出:
a: 502, b: 475