为什么列表只添加某些数字?

时间:2017-03-02 22:41:43

标签: java arraylist

我试图通过询问用户输入来编译int列表。但是,由于某种原因,代码只将偶数添加到列表中。此外,while循环仅在我第二次输入999时停止。代码如下:

import java.util.*;

public class hw3 {
  public static void main (String args[]) {
    Scanner input = new Scanner(System.in);
    ArrayList<Integer> pre = new ArrayList<Integer>();
    while (input.nextInt() != 999) {
      pre.add(input.nextInt());
    }
  }
}

我不确定我做错了什么。请指出我的错误。

2 个答案:

答案 0 :(得分:8)

你为循环的每次迭代调用input.nextInt()两次。

只需调用一次,缓存结果并在添加到阵列时使用它。

答案 1 :(得分:3)

nextInt()被调用两次,一次在循环之前,然后在while循环内。

你需要做这样的事情:

  public static void main (String args[]) {
    Scanner input = new Scanner(System.in);
    ArrayList<Integer> pre = new ArrayList<Integer>();
    int in; 
    while ((in = input.nextInt()) != 999) {
      pre.add(in);   
    }
  }