我试图通过询问用户输入来编译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());
}
}
}
我不确定我做错了什么。请指出我的错误。
答案 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);
}
}