多次输入整数时出现 InputMismatchException
InputMismatchException when entering integers multiple times
我看过其他类似的问题,但没有找到解决我的问题的方法。
只是尝试扫描 2 个数字并将它们相加:
Scanner input = new Scanner(System.in);
int number1;
int number2;
int sum;
System.out.print("First: ");
number1 = input.nextInt();
System.out.println("Second: ");
number2 = input.nextInt();
sum = number1 + number2;
System.out.println("The sum is " + sum);
第一个打印得很好,下一次它与 IME 一起崩溃...我做错了什么?
在您的第一个 nextInt()
调用之后插入 input.nextLine()
。 nextInt()
会留下换行符。
很久以前这个问题已经在这里被问过很多次了,包括我自己。
当使用 scn.nextInt()
时,它仍然等待输入,从而影响以后的所有输入。
有两种方法可以解决这个问题。
在您的 scn.nextInt()
之后放置一个 scn.nextLine()
;
System.out.print("First: ");
number1 = input.nextInt(); input.nextLine();
System.out.println("Second: ");
number2 = input.nextInt(); input.nextLine();
接收为String
并解析为整数(我更喜欢这种方法)
System.out.print("First: ");
number1 = Integer.parseInt(input.nextLine());
System.out.println("Second: ");
number2 = Integer.parseInt(input.nextLine());
如果您在 C#
方面有一些经验,他们希望您也可以使用第二种方法。
我看过其他类似的问题,但没有找到解决我的问题的方法。
只是尝试扫描 2 个数字并将它们相加:
Scanner input = new Scanner(System.in);
int number1;
int number2;
int sum;
System.out.print("First: ");
number1 = input.nextInt();
System.out.println("Second: ");
number2 = input.nextInt();
sum = number1 + number2;
System.out.println("The sum is " + sum);
第一个打印得很好,下一次它与 IME 一起崩溃...我做错了什么?
在您的第一个 nextInt()
调用之后插入 input.nextLine()
。 nextInt()
会留下换行符。
很久以前这个问题已经在这里被问过很多次了,包括我自己。
当使用 scn.nextInt()
时,它仍然等待输入,从而影响以后的所有输入。
有两种方法可以解决这个问题。
在您的
scn.nextInt()
之后放置一个scn.nextLine()
;System.out.print("First: "); number1 = input.nextInt(); input.nextLine(); System.out.println("Second: "); number2 = input.nextInt(); input.nextLine();
接收为
String
并解析为整数(我更喜欢这种方法)System.out.print("First: "); number1 = Integer.parseInt(input.nextLine()); System.out.println("Second: "); number2 = Integer.parseInt(input.nextLine());
如果您在 C#
方面有一些经验,他们希望您也可以使用第二种方法。