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