虽然循环没有停止Java

问题描述 投票:-2回答:2

我最近开始使用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
    }
java loops while-loop
2个回答
0
投票

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

例如:

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

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

例如:

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

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

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

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

仅当满足特定条件的all时,此检查才返回true。

© www.soinside.com 2019 - 2024. All rights reserved.