如何在循环中的不同语句之间切换

时间:2016-02-15 06:18:28

标签: java loops

我试图弄清楚如何对两个事物进行循环,例如玩家,并检查每个事物是否都是活跃的,如果是,他们应该做不同的事情。

首先应检查是否有胜利者,如果不是第一个玩家应该进行移动并检查他是否通过这样做获胜。在第一个玩家完成他的移动并且没有获胜之后,第二个玩家应该做他的移动,当然还要测试他是否赢了。如果没有人赢了,那么第一个玩家应该进行下一步行动等等。

这就是我现在的想法。

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请求是真的,而其他如果不通过。但是我怎么能让它基本上每次切换?

1 个答案:

答案 0 :(得分:5)

您不需要playerTwo变量。只需切换playerOne变量以确定它是否是玩家的一个回合(在这种情况下,它将是玩家的回合)。

这使你的循环简单如下:

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;
}