0

这是更大任务的一部分。在这里,我基本上需要接受用户输入,直到用户键入 0。这些双精度值需要添加到数组中。出于某种原因,它们现在没有被添加到数组中。有什么帮助吗?

public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    double[] inputArray = new double[3];
    double input;
    do{
        input = scanner.nextDouble();

    for(int i = 0; i < 3; i++){
        inputArray[i] = input;
    }
    }
    while(input != 0);

    System.out.println("Element 0:" + inputArray[0]);
    System.out.println("Element 1:" + inputArray[1]);
    }
4

1 回答 1

4

您一直在迭代,直到input为 0... 所以在循环终止之前的最后一次迭代中,我们知道input 它将为 0。

现在看看你在while循环中做了什么:

for(int i = 0; i < 3; i++){
    inputArray[i] = input;
}

您正在用当前值替换数组中的所有input元素。

因此,当您退出循环时,您刚刚将所有元素替换为 0。

List<Double>将 a与合适的实现(例如ArrayList<Double>)一起使用并list.add(input)while循环内调用会好得多。

然后打印出列表的每个元素:

for (Double value : list) {
    System.out.println(value);
}

或者,如果您真的想要索引:

for (int i = 0; list.size(); i++) {
    System.out.println("Element " + i + ": " + list.get(i));
}

如果你必须使用一个数组,你应该跟踪你已经设置了多少项目(在while循环中增加一个计数器),并且只为循环的每次迭代在数组中设置一个值。如果数组空间不足,也不要忘记终止循环!

于 2013-03-28T19:49:16.193 回答