使用while循环验证输入

Col*_* H. 1 java validation input

我想让用户只输入"y""Y""n"或"N".生成的代码要求用户在输入正确的输入时输入Y或N,这与我预期的放置相反!在input.equalscaseignore(输入)前面.


import java.util.Scanner;


class inputVal {

    public static void main(String[] args) {
        String Input;
        Scanner keyboard = new Scanner(System.in);

        System.out.println("Please enter Y or N. ");
        Input = keyboard.nextLine();

        while (!Input.equalsIgnoreCase("Y") || !Input.equalsIgnoreCase("N"))
        {
            System.out.println("Please enter Y or N");
            Input = keyboard.nextLine();

        }


        keyboard.close();
    }

}
Run Code Online (Sandbox Code Playgroud)

gtg*_*ola 6

这是你的or条件,你必须把它改成and

while (!Input.equalsIgnoreCase("Y") && !Input.equalsIgnoreCase("N"))
Run Code Online (Sandbox Code Playgroud)

只是大声朗读它将有助于理解逻辑:

WHILE输入不相等(忽略大小写)"Y" AND输入不等于(忽略大小写)"N"