我见过其他类似的问题,并没有找到解决问题的方法。
只是尝试扫描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崩溃...我做错了什么?
答案 0 :(得分:1)
在第一次input.nextLine()
电话后插入nextInt()
。 nextInt()
会留下换行符。
答案 1 :(得分:0)
这个问题在很久以前就已被问到很多次,包括我自己。
使用scn.nextInt()
时,它仍会等待输入,从而影响以后的所有输入。
有两种方法可以解决这个问题。
在scn.nextLine()
;
scn.nextInt()
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#
有一些经验,他们希望您也可以使用第二种方法。