繁体   English   中英

用布尔值循环

[英]Do loop while with boolean

有人可以解释为什么我无法打破循环吗? 要打破循环,Player1Pass或Player2Pass应该为false。 还有一种方法可以打破中间的循环,例如,Player1Pass = true; 但是让程序在结束循环之前完成整个循环吗? -顺便说一下,我知道代码并不完美。 我刚刚开始使用Java。 :)

        boolean Player1Pass = true;
        boolean Player2Pass = true;
        do{ 
        String answer;
        Scanner scan = new Scanner (System.in);

        System.out.println(pName1 +" would you like to DRAFT another card or PASS?" );

            answer = scan.nextLine();
            if (answer.equalsIgnoreCase("DRAFT")) {
                clsCard cardFace = new clsCard();
                System.out.println("Your new card is: " + cardFace);
            } else if (answer.equalsIgnoreCase("PASS")) {
                Player1Pass = true;
            }

        System.out.println(pName2 +" would you like to DRAFT another card or PASS?" );

            answer = scan.nextLine();
            if (answer.equalsIgnoreCase("DRAFT")) {
                clsCard cardFace = new clsCard();
                System.out.println("Your new card is: " + cardFace);
            } else if (answer.equalsIgnoreCase("PASS")) {
                Player2Pass = false;
            }


        }while(Player1Pass || Player2Pass);
}
}

我相信您将需要更改|| &&

}while(Player1Pass && Player2Pass);

如果任何一个返回false ,则整个语句将为false ,并将退出循环。

Player1Pass永远不会更改true值,因此由于条件为OR(因此,如果只有一个成员为true,则所有条件均为true),因此每次都会执行while。

我认为您需要检查一下逻辑。 也许应该是while (Player1Pass && Player2Pass)并且您必须在代码中更改其中一个或两个的原始真实状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM