Java 如何在循环中的不同语句之间切换
我想弄清楚如何在两件事情上做一个循环,例如,玩家,检查他们是否都是活动的,如果是,他们应该做不同的事情 它应该首先检查是否有赢家,如果没有,第一个玩家应该做他的动作,并检查他是否通过做那个动作赢了。在第一名球员完成动作但未获胜后,第二名球员应完成动作,当然,测试他是否获胜。如果还没有人赢,第一个玩家应该采取下一步行动,以此类推 这就是我现在的想法Java 如何在循环中的不同语句之间切换,java,loops,Java,Loops,我想弄清楚如何在两件事情上做一个循环,例如,玩家,检查他们是否都是活动的,如果是,他们应该做不同的事情 它应该首先检查是否有赢家,如果没有,第一个玩家应该做他的动作,并检查他是否通过做那个动作赢了。在第一名球员完成动作但未获胜后,第二名球员应完成动作,当然,测试他是否获胜。如果还没有人赢,第一个玩家应该采取下一步行动,以此类推 这就是我现在的想法 boolean playerOne = true; boolean playerTwo = false; boolean haveWinner = f
boolean playerOne = true;
boolean playerTwo = false;
boolean haveWinner = false;
while(haveWinner == false) {
if (playerOne == true & playerTwo == false) {
/*do something */
playerOne = false;
playerTwo = true;
} else if (playerOne == false & playerTwo == true) {
/* do something */
playerOne = true;
playerTwo = false;
} else {
System.out.println("No ones turn");
}
}
我知道这样做是行不通的,因为第一个If请求是真的,而另一个If甚至都无法通过。但是我怎样才能使它基本上每次都切换?您不需要
playerTwo
变量。只需切换playeron
变量即可确定是否轮到玩家一(在这种情况下,轮到玩家二)
这使循环变得非常简单:
boolean playerOne = true;
boolean haveWinner = false;
while (!haveWinner) {
if (playerOne) {
/*player one's turn - do something */
playerOne = false;
} else {
/* player two's turn - do something */
playerOne = true;
}
}
或者您甚至可以使用以下命令保存一行代码:
boolean playerOne = true;
boolean haveWinner = false;
while (!haveWinner) {
if (playerOne) {
/*player one's turn - do something */
} else {
/* player two's turn - do something */
}
playerOne = !playerOne;
}
您不需要
playerTwo
变量。只需切换playeron
变量即可确定是否轮到玩家一(在这种情况下,轮到玩家二)
这使循环变得非常简单:
boolean playerOne = true;
boolean haveWinner = false;
while (!haveWinner) {
if (playerOne) {
/*player one's turn - do something */
playerOne = false;
} else {
/* player two's turn - do something */
playerOne = true;
}
}
或者您甚至可以使用以下命令保存一行代码:
boolean playerOne = true;
boolean haveWinner = false;
while (!haveWinner) {
if (playerOne) {
/*player one's turn - do something */
} else {
/* player two's turn - do something */
}
playerOne = !playerOne;
}
这不是最漂亮的代码,但我不明白为什么这不起作用。Eran的回答显示了一种更好的方法。您还可以使用
switch()。这不是最漂亮的代码,但我不明白为什么这不起作用。Eran的回答显示了一种更好的方法。您还可以使用switch()@迪恩。它在每次迭代结束时切换playerne
的值。如果它是真的,它就会变成假的,反之亦然。我非常喜欢那个,看起来很干净。再次感谢。@DeanJ。它在每次迭代结束时切换playerne
的值。如果它是真的,它就会变成假的,反之亦然。我非常喜欢那个,看起来很干净。再次感谢。