Java ArrayList<double> 无法按预期工作



我正在尝试编写一个程序,该程序将通过用户输入数字,并将数字存储到ArrayList中。目前我有:

public static void main(String[] args) {
System.out.println(numberstorage());
}
public static ArrayList<Double> numberstorage() {
Scanner s = new Scanner(System.in);
ArrayList<Double> numbers = new ArrayList<Double>();
System.out.println("Enter a number between 0 - 100");
do {
numbers.add(s.nextDouble());
} while (s.nextDouble() != 0);
s.close();
return numbers;
}

当我输入1、2、3时,由于某种原因,我的输出是1.0、3.0。它跳过一行输入是有原因的吗?

每个循环调用s.nextDouble()两次--一次将其添加到numbers,一次检查while条件。

相反,您只想调用它一次,每次都使用相同的值。将其存储在变量中。

最新更新