这是更大任务的一部分。在这里,我基本上需要接受用户输入,直到用户键入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]);
}
答案 0 :(得分:4)
你继续迭代直到input
为0 ...所以在循环的最后一次迭代之前,我们知道input
将为0
现在看看你在while
循环中正在做什么:
for(int i = 0; i < 3; i++){
inputArray[i] = input;
}
您正在使用当前值input
替换所有数组中的元素。
因此,当您退出循环时,您刚刚将所有元素替换为0。
将List<Double>
与合适的实施方式(例如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
循环中增加一个计数器)并仅设置值。如果阵列中的空间不足,也不要忘记终止循环!