在while循环中进行条件测试

时间:2012-05-15 13:48:28

标签: java

我有一个包含do while循环的程序。我需要测试是否出现两种情况中的任何一种。第一个是currentPlayerEnergy不等于0.第二个是quit不成立。代码如下:

do
{
        switch(answer)
        {
            case 'w':   System.out.println("Walk");
                        break;

            case 'b':   System.out.println("Buy");
                        break;

            case 'c':   System.out.println("Change Character");
                        break;

            case 'r':   currentPlayerEnergy = 0;
                        break;

            case 'q':   quit = true;
                        break;
        }


}
while ( (currentPlayerEnergy > 0) || (quit != true ) );

请注意,我只是在'r'的情况下测试currentPlayerEnergy变为零。我理解这个问题,java读取测试并说如果当前能量不为零,继续使用块,但它不会检查退出是否变为真。我使用错误的循环类型吗?是否有其他操作数我应该使用而不是逻辑或?非常感谢。

2 个答案:

答案 0 :(得分:8)

  

是否有其他的歌剧[我]应该使用而不是逻辑或?

是的,要使用的正确运算符是逻辑“AND”(&&):

while ( (currentPlayerEnergy > 0) && !quit );

我还将(quit != true)更改为!quit,但这种变化纯粹是风格上的。

答案 1 :(得分:0)

你在这里告诉程序:

 while ( (currentPlayerEnergy > 0) || (quit != true ) );

如果两个布尔表达式中的一个为真,则保持不变。

只有两者都是假的,它才会继续。您希望逻辑完全按照aix进行操作 表示:

while ( (currentPlayerEnergy > 0) && !quit );

请注意(!quit)只是(quit!= true)

的简短形式