2013-03-28 57 views
0

這是一個較大的任務的一部分。在這裏,我基本上需要接受用戶輸入,直到用戶輸入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]); 
    } 

回答

4

您就可以將迭代,直到input是0 ...等循環的最後一次迭代在終止前,我們知道input爲0

現在看什麼你正在做的while循環:

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

你與當前值o更換所有元素的數組中f 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循環中計數器遞增),並且僅爲該循環的每次迭代設置一個值。如果陣列中的空間用完,也不要忘記終止循環!

相關問題