当连续输入错误时,循环中断Java。

3
当您连续两次输入随机值(如“i”)时,程序将终止。我希望“无效数据,请重试”和“您想再玩一次吗?”会一直重复,直到输入N或Y为止。
7 8 5
No numbers match
Do you want to play again?
i
Invalid data please try again
Do you want to play again?
i
Thank you for using this program

它应该是:
7 8 5
No numbers match
Do you want to play again?
i
Invalid data please try again
Do you want to play again?
i
Invalid data please try again
Do you want to play again?

"...等等。"
"代码:"
import java.util.Random;
import java.util.Scanner;

public class TestSlotMachine {

    public static void main(String[] args) {
        String choice;

        Scanner keyboardScanner = new Scanner(System.in);

        do {
            Random randomNumber = new Random();
            int slot1, slot2, slot3;

            slot1 = randomNumber.nextInt(9);
            slot2 = randomNumber.nextInt(9);
            slot3 = randomNumber.nextInt(9);

            System.out.println(slot1+" "+slot2+" "+ slot3);

            if (slot1 != slot2 && slot1 != slot3 && slot2 != slot3) {
                System.out.println("No numbers match");
            }
            else if (slot1 == slot2 && slot2 == slot3) {
                System.out.println("Three numbers match");
            }
            else {
                System.out.println("Two numbers match");
            }

            System.out.println("Do you want to play again?");
            choice = keyboardScanner.next();
            if (!choice.equalsIgnoreCase("n") && !choice.equalsIgnoreCase("y")) {
                System.out.println("Invalid data please try again");
                System.out.println("Do you want to play again?");
                choice = keyboardScanner.next();
            }

        } while (choice.equalsIgnoreCase("y"));

        System.out.println("Thank you for using this program");
        keyboardScanner.close();
    }
}
1个回答

1

if (!choice.equalsIgnoreCase("n") && !choice.equalsIgnoreCase("y"))

可以改为

while (!choice.equalsIgnoreCase("n") && !choice.equalsIgnoreCase("y"))


应该使用 || 而不是 && 吗? - Coding Enthusiast
3
不行,因为那样它就会一直是真的。 - Kayaman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接