Java 尝试捕获赋值问题
当我输入int第一个程序检查并赋值但不打印时,下一个int我输入它但打印第一个输入的值。如果值为string,则再次询问,但不将值分配给number。我如何解决这个问题?先谢谢你Java 尝试捕获赋值问题,java,try-catch,Java,Try Catch,当我输入int第一个程序检查并赋值但不打印时,下一个int我输入它但打印第一个输入的值。如果值为string,则再次询问,但不将值分配给number。我如何解决这个问题?先谢谢你 public static void main(String[] args) { int number = 0; Scanner kb = new Scanner(System.in); do { try { System.out.println(&
public static void main(String[] args) {
int number = 0;
Scanner kb = new Scanner(System.in);
do {
try {
System.out.println("Enter a number: ");
number = kb.nextInt();
} catch (Exception e) {
System.out.println("Not a number!");
kb.nextLine();
}
} while (!kb.hasNextInt());
System.out.println(number);
}
输出
Enter a number: ab
Not a number!
5
Number: 0
.next()
,并更新扫描仪的分隔符:scanner.useDelimiter(“\r?\n”)代码>-按您的方式操作意味着,如果用户使用键盘上最大的键,您的应用程序将中断
.hasNextInt()
。如果用户输入非数字,则返回false。如果输入是正确的,就把它设为真,然后跳出循环。请注意,kb.hasNextInt
将冻结(等待),直到用户输入内容。毕竟,只要用户没有输入另一个令牌,扫描器怎么可能告诉您它是否是int
如果您不打算使用nextXXX方法,那么最好只使用BufferedReader#readLine()。。我从来都不喜欢扫描仪。