【发布时间】:2018-04-17 14:41:50
【问题描述】:
我正在编写一个 java 程序来模拟两个骰子的滚动。对于每个掷骰,如果两个骰子的面不同,我会增加一个计数器。直到两个骰子都具有相同的面时,我才想打印出计数器值。 Count 基本上是在计算在两个骰子上获得相同面孔所需的次数。
我试着写了:
int count = 0;
while (true) {
int dice1 = getRandom(1,6);
int dice2 = getRandom(1,6);
if (dice1 != dice2) {
count ++;
}
System.out.println(count);
代码似乎没有产生正确的输出。我很好奇我是否根据我的逻辑正确模拟它?我是java新手,希望能得到一些帮助。
getRandom() 函数返回 1 到 6 之间的随机数,因为骰子可以有 1 到 6 个值。
private static int getRandom(int n1, int n2){
int retVal = 0;
retVal = n1 + (int) Math.floor(Math.random() * (n2 - n1 + 1));
return retVal;
}
【问题讨论】:
-
你在哪里打破了
while循环?在我看来,while (getRandom(1,6) != getRandom(1,6)) count++;应该可以完成这项工作。 -
你可以使用 getRandom 函数来代替:1+ new Random().nextInt(6);你也可以阅读更多关于 do while 的内容