比较 java 中的 char 变量
Comparing char variables in java
我会比较一个字符,但它实际上不起作用:
//...
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);
}
//...
在我的终端上,当我按 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
...
你的条件不对。应该是:
while(ch!='y' && ch!='n' && ch!='Y' && ch!='N')
因为只要输入字符不同于 all 4 个可接受的输入,循环就应该继续。
您需要在 while 循环中使用 &&
而不是 ||
。
条件错误。您必须放置 "and" 条件 (&&),如果用户键入除了 ('Y'、'y'、'N'、'n').
代码如下:
System.out.print("PROCEED? (Y/N):\t");
Scanner in = new Scanner(System.in);
String line=in.nextLine();
Character 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);
}
希望对您有所帮助。
我会比较一个字符,但它实际上不起作用:
//...
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);
}
//...
在我的终端上,当我按 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
...
你的条件不对。应该是:
while(ch!='y' && ch!='n' && ch!='Y' && ch!='N')
因为只要输入字符不同于 all 4 个可接受的输入,循环就应该继续。
您需要在 while 循环中使用 &&
而不是 ||
。
条件错误。您必须放置 "and" 条件 (&&),如果用户键入除了 ('Y'、'y'、'N'、'n'). 代码如下:
System.out.print("PROCEED? (Y/N):\t");
Scanner in = new Scanner(System.in);
String line=in.nextLine();
Character 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);
}
希望对您有所帮助。