Java 获取while循环以继续使用if语句

Java 获取while循环以继续使用if语句,java,Java,我正在使用while循环和if语句 如果正在运行else语句,我希望循环继续。据我所知,这一进程将继续下去;应该重新启动循环,但它没有 不过我找到了一个解决方法,那就是设置cho=1;。但这真的有必要吗?有没有其他合乎逻辑的方法来解决这个问题 谢谢 while (sum < 21 && cho == 1 && sum != 21) { System.out.println("Do you want to (1)hit or (2) s

我正在使用while循环和if语句

如果正在运行else语句,我希望循环继续。据我所知,这一进程将继续下去;应该重新启动循环,但它没有

不过我找到了一个解决方法,那就是设置cho=1;。但这真的有必要吗?有没有其他合乎逻辑的方法来解决这个问题

谢谢

    while (sum < 21 && cho == 1 && sum != 21) {
        System.out.println("Do you want to (1)hit or (2) stay?");
        cho = scan.nextInt();

        if (cho == 1) {

            getCard(index++);

            if (sum > 21) {
                System.out.println("You busted! Dealer wins.");
                return;
            }
        } else if (cho == 2) {
            System.out.println("Your value is " + sum);
            sum = playerTotal;
        }
        else{
            cho = 1;
            System.err.println("The input value given is not a valid integer");
            continue; //Does not restart the loop.
        }
    }
continue跳回循环的条件,然后再次计算该条件。如果条件的计算结果为false,则显然不会再次运行循环

因此,如果希望循环继续实际循环,则必须确保条件为真

这意味着:您必须设置cho=1,并确保sum<21


还请注意,总和!=在您的情况下不需要21,因为sum<21已经消除了这种可能性。

Define不起作用。当您在调试器中单步执行此操作时,它会做什么?continue操作与您描述的操作完全相同,而且似乎您犯了逻辑错误,而不是continue关键字不起作用。continue将重复循环,但如果您的条件发生更改,则循环将结束。好的,我知道,当输入不等于1或2时,条件会更改。我不明白条件必须是真的才能使它继续工作,我认为它做了一个覆盖。谢谢,这澄清了很多问题,确实解决了问题!我对编程很陌生,所以请原谅我的伪科学。