繁体   English   中英

为什么此数组不接受用户输入?

[英]Why is this array not accepting user input?

这是较大任务的一部分。 在这里,我基本上需要接受用户输入,直到用户键入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]);
    }

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

现在来看一下while循环中的操作:

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

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

因此,在退出循环时,您已经将所有元素替换为0。

最好使用具有适当实现的List<Double> (例如ArrayList<Double> )并在while循环内仅调用list.add(input)

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

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

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

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

如果必须使用数组,则应跟踪已设置的项数(在while循环中增加一个计数器),并且每次循环的迭代仅在数组中设置一个值。 如果阵列中的空间不足,也不要忘记终止循环!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM