Java 在带有验证的while循环中输入字符
在这里,我想要一个来自键盘的输入字符值,它将只是Java 在带有验证的while循环中输入字符,java,Java,在这里,我想要一个来自键盘的输入字符值,它将只是while循环中(+-*/)的符号。如果符号不匹配,while循环将运行 此处,while循环正在工作,但未检查字符。所以,当循环持续工作时- System.out.print("Enter the operator (+ - X /): "); operator = input.next(); char c=operator.charAt(0); while (c != '+' && c != '-' && c !
while
循环中(+-*/)的符号。如果符号不匹配,while循环将运行
此处,while
循环正在工作,但未检查字符。所以,当循环持续工作时-
System.out.print("Enter the operator (+ - X /): ");
operator = input.next();
char c=operator.charAt(0);
while (c != '+' && c != '-' && c != '*' && c != '/'){
System.out.println("Operator doesn't match. Try again.");
System.out.print("Enter the operator (+ - X /): ");
input.next().charAt(0);
}
在while循环的最后一行中,您正在检索用户输入,但没有将其存储在任何位置。你应该这样做:
System.out.println("Operator doesn't match. Try again.");
System.out.print("Enter the operator (+ - X /): ");
如果您想做一些有趣的事情,您也可以尝试使用,如下所示:
c = input.next().charAt(0);
更改“input.next().charAt(0);”while循环中指向“c=input.next().charAt(0);”的行它解决了你的问题。当前c值在内部没有变化,这是真的!谢谢你指出,我已经改正了。我一定是太累了,该睡觉了,哈哈
char c;
do {
System.out.println("Enter a operator (+ - * /):");
c = input.next().charAt(0);
} while(c != '+' && c != '-' && c != '*' && c != '/');