[英]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.