[英]do while loop not working? Java
我试图做一个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,并且因为在开头附近有7个,所以应该说“你输了”我就不会在这里出错了吗?
编辑:
请将循环更改为:
do{
x = rollDice();
System.out.println("Roll again: " + x);
}
while(x != y && x != 7);
您应该每次迭代只调用一次rollDice()。 你在每次回合中称它为3次。 另外,|| 需要更改为&&。
这听起来像你写的地方
x != y || rollDice() != 7
你自找的
x != y && x != 7
(如果你说你想循环直到“x等于y或x等于7”,那么你真的想要&&,而不是||,在你的条件下。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.