2013-09-23 30 views
0

我想了解收集用戶輸入和循環,直到條件。 我想循環掃描儀,直到用戶輸入0,但是,我需要存儲每個輸入的整數,以便以後可以訪問它以備後用。最難的部分是,我不能使用數組。連續輸入收集,直到條件滿足?

+0

您正在使用哪種語言? – Stijn

+0

這是在Java嗎?另外,如果你不能使用數組......你可以使用什麼? –

+0

是的,這是Java對不起 – Ryan

回答

0

簡單,你可以這樣做

List mylist = new ArrayList(); //in java. other wise you can create array[size] 
int input = 1; 
while(input!=0) 
{ 
    /* input number from user here */ 

    if(input!=0) 
    mylist.add(input); 

} 
0

下面是一個簡單的方法來環用戶輸入,直到輸入0

Scanner console = new Scanner(System.in); 
boolean loop = true; 
String input; 
while(loop) { 
    input = console.nextLine(); 
    //Add input to a data structure 
    if (input.equals("0")) { 
     loop = false; 
    } 
} 

至於添加用戶輸入到數據結構,你說你不能使用數組。如何ListSet。即使是StackQueue也可以工作。你看過使用任何這些數據結構嗎?

下面是一個使用列表中的一個基本的例子:

List<String> aList = new ArrayList<String>(); 
aList.add(input); 

這是如何使用堆棧:

Stack<String> stk = new Stack<String>(); 
stk.push(input); 

也許是最有效的方法是使用一個HashSet:

Set<String> set = new HashSet<String>(); 
set.add(input); 
0

在這裏使用數組將會有點棘手,因爲您不知道用戶將要使用的元素的數量之三。您可以隨時編寫代碼,創建一個容量更大的新陣列,一旦用戶已經耗盡初始容量並複製現有輸入元素,但使用List會容易得多。

Scanner scanner = new Scanner(System.in); 

    List<Integer> input = new ArrayList<>(); 
    int nextInt = Integer.MIN_VALUE; 
    while((nextInt = scanner.nextInt()) != 0){ 
     input.add(nextInt); 
    } 

如果你真的想使用數組,請看這個問題。解答有關創建新數組和複製元素的解釋。 Java dynamic array sizes?