比较java中的char变量

Mar*_*aro 0 java comparison char while-loop

我会比较一个字符,但它实际上不起作用:

//...
System.out.print("PROCEED? (Y/N):\t");
line = in.nextLine();
ch = line.charAt(0);

while (ch != 'y' || ch != 'n' || ch != 'Y' || ch != 'N'){
    System.out.print("NON-VALID INPUT. TYPE Y-N:\t");

    line = in.nextLine();
    ch = line.charAt(0);
}
//...
Run Code Online (Sandbox Code Playgroud)

在我的终端上,当我按y或时n,结果是:

PROCEED? (Y/N): y
NON-VALID INPUT. TYPE Y-N:  y
NON-VALID INPUT. TYPE Y-N:  Y
NON-VALID INPUT. TYPE Y-N:  n
NON-VALID INPUT. TYPE Y-N:  r
NON-VALID INPUT. TYPE Y-N:  d
...
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 5

你的病情有误.它应该是 :

while(ch!='y' && ch!='n' && ch!='Y' && ch!='N')
Run Code Online (Sandbox Code Playgroud)

因为只要输入字符不同于所有 4个可接受的输入,循环就应该继续.