我的节目应该在所有三个骰子全部出现之前打印卷数。
这是我到目前为止所拥有的,但我得到的输出是1的小数字我不认为它可能需要1次才能滚动所有三个六。我期待更大的数字。
Random rand = new Random();
int numOfRolls = 0; //starts at zero for the number of rolls
int x;
int y;
int z;
do {
numOfRolls++;
x = rand.nextInt(6) + 1;
y = rand.nextInt(6) + 1;
z = rand.nextInt(6) + 1;
} while (x == 6 || y == 6 || z == 6);
System.out.println(numOfRolls);
答案 0 :(得分:2)
将while
条件更改为:
while (x !=6 || y != 6 || z != 6)
这将导致循环继续,直到所有三个值都为6。
答案 1 :(得分:1)
使用或将告诉你滚动的数量,直到三个整数中的一个落在6上。此外,你希望程序一旦落在三个6上就停止,所以将==切换到!=。
x != 6 && y != 6 && z != 6
答案 2 :(得分:1)
逻辑条件必须是:
while(x != 6 || y != 6 || z != 6)
因为你需要重复循环,直到所有三个都不是6
示例:
Random rand = new Random();
int numOfRolls = 0; //starts at zero for the number of rolls
int x;
int y;
int z;
do {
numOfRolls++;
x = rand.nextInt(6) + 1;
y = rand.nextInt(6) + 1;
z = rand.nextInt(6) + 1;
} while (x != 6 || y != 6 || z != 6);
System.out.println(numOfRolls);
答案 3 :(得分:0)
如果所有三个骰子都没有滚动的东西,你希望它继续下去。其他人已经注意到它但我会在psudeo代码中拼写逻辑,所以它应该更清楚:
// Do While:
// firstDie is not 6 AND secondDie is not 6 AND thirdDie is not 6
// if firstDie == 6 and secondDie == 6 and thirdDie == 6 then you should stop looping
// so transforming the above logic into code - change the while statement to something like this:
while (x != 6 || y != 6 || z != 6)
// or you can break OUT of the loop when all three die land six. something like this:
while (true)
{
// all the rest of the code setting up the values
if ( x == 6 && y == 6 && z == 6) break;
}