虽然循环没有停止Java

时间:2018-01-03 21:38:23

标签: java loops while-loop

我最近开始使用Java进行编码,而且我一直试图关闭这个循环,但即使添加了理论上应该停止的行,它也不会停止。 这是我的代码示例,我已经从法语中翻译了对象和方法,以便让您更容易阅读,因此如果出现语法错误,则100%由于翻译,而不是我的实际代码中的错误。 PS:您看到的每个对象都会在显示的代码之前实现。

while (player1.money > 0 || player2.money > 0 || player3.money > 0) {
        System.out.println("Turn number: " + turn);
        System.out.println("-------------------");
        System.out.println("-------------------");
        System.out.println("Player : " + player1.name);
        System.out.println("Bank Account : " + player1.money);
        System.out.println("-------------------");
        player1.rollDice(player1, table, chanceCard, commuCard);
        System.out.println("-------------------");
        System.out.println("Player : " + player2.name);
        System.out.println("Bank Account : " + player2.money);
        System.out.println("-------------------");
        player2.rollDice(player2, table, chanceCard, commuCard);
        System.out.println("-------------------");
        System.out.println("Player : " + player3.name);
        System.out.println("Bank Account : " + player3.money);
        System.out.println("-------------------");
        player3.rollDice(player3, table, chanceCard, commuCard);
        turn++;
        player1.money=-1000;//Trying to stop the loop
    }

2 个答案:

答案 0 :(得分:0)

它不会停止,因为您在||声明中使用了“或”while。所以如果一个表达式至少是true那么循环将继续执行。您必须使用“和”&&代替。

例如:

while (player1.money > 0 && player2.money > 0 && player3.money > 0) {
..

或者将您的条件中使用的所有金钱值设置为小于或等于0

例如:

 ...
 player1.money=-1000;
 player2.money=-1000;
 player3.money=-1000;

答案 1 :(得分:0)

player1.money > 0 || player2.money > 0 || player3.money > 0

如果至少满足这三个条件中的一个,则此检查返回true。要在至少的玩家没有足够的资金时让代码退出循环,请将OR(||)运算符更改为AND(&&)运算符:

player1.money > 0 && player2.money > 0 && player3.money > 0

只有满足all特定条件时,此检查才会返回true。