0

我看过其他类似的问题,但没有找到任何解决我问题的方法。

只是尝试扫描 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 崩溃......我做错了什么?

4

2 回答 2

1

input.nextLine()在您第一次nextInt()通话后插入。nextInt()将留下换行符。

于 2015-04-16T11:44:18.907 回答
0

这个问题在这里被问过很多次,包括我自己很久以前。

使用时scn.nextInt(),它仍然等待输入,从而影响以后的所有输入。

有两种方法可以解决这个问题。

  1. scn.nextLine()在你的scn.nextInt();之后放置一个

    System.out.print("First: ");
    number1 = input.nextInt(); input.nextLine();
    System.out.println("Second: ");
    number2 = input.nextInt(); input.nextLine();
    
  2. 接收String并解析为整数(我更喜欢这种方法)

    System.out.print("First: ");
    number1 = Integer.parseInt(input.nextLine());
    System.out.println("Second: ");
    number2 = Integer.parseInt(input.nextLine());
    

如果您有一些经验C#,他们希望您也可以使用第二种方法。

于 2015-04-16T12:23:24.110 回答