簡體   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