我试图做一个while循环,它将保持循环,直到x等于y或x等于7 这是代码:
else if(y == 4 || y == 5 || y == 6 || y == 8 || y == 9 || y == 10){
System.out.println("Value point is: " + y);
int x = rollDice();
do{
System.out.println("Roll again: " + rollDice());
x = rollDice();
}
while(x != y || rollDice() != 7);
if(x == y){
System.out.println("You Win!");
}
if(x == 7){
System.out.println("You Lose");
}
return;
}}
这是输出的样子:
Dice roll is: 9
Value point is: 9
Roll again: 2
Roll again: 6
Roll again: 6
Roll again: 4
Roll again: 7
Roll again: 11
Roll again: 8
Roll again: 9
Roll again: 2
Roll again: 5
Roll again: 6
Roll again: 8
Roll again: 5
Roll again: 11
Roll again: 5
Roll again: 2
Roll again: 9
Roll again: 6
Roll again: 3
Roll again: 8
Roll again: 8
Roll again: 8
Roll again: 4
Roll again: 7
Roll again: 10
Roll again: 6
Roll again: 5
Roll again: 9
Roll again: 4
Roll again: 7
Roll again: 4
Roll again: 2
Roll again: 8
Roll again: 8
You Win!
显然8不等于9,并且由于在开头附近有七个应该说“你输了”我不知道我在哪里出错了?
答案 0 :(得分:3)
编辑:
请将循环更改为:
do{
x = rollDice();
System.out.println("Roll again: " + x);
}
while(x != y && x != 7);
每次迭代只应调用一次rollDice()。你在每次回合中称它为3次。另外,||需要改为&&。
答案 1 :(得分:0)
听起来就像你写的那样
x != y || rollDice() != 7
你想要
x != y && x != 7
(如果你说要循环直到" x等于y或x等于7",那么你真的想要&&,而不是||,在你的条件下。)