簡體   English   中英

以固定長度迭代Java數組以獲取用戶輸入值,而無需替換以前的值

[英]Iterate Java array with fixed length to take user input values without replacing former values

如何循環固定長度2的Java數組以迭代而不替換先前的值? 下面的代碼將使用用戶輸入的值迭代循環。 但是它將替換以前的值:

Scanner input2 = new Scanner(System.in);
char[] block = new char[2];
while (block[0] != 'C' && block[1] != 'C') {
    System.out.println("enter number");
    block[0]=input2.next().charAt(0);
    System.out.println("enter number");
    block[1]=input2.next().charAt(0);
    System.out.println(block);
}

如果用戶為該數組輸入C,C,則該數組應停止迭代。

謝謝

這是你想要的嗎? 每次迭代,循環將在索引[0][1]之間切換。

Scanner input2 = new Scanner(System.in);
char[] block = new char[2];
int i = 0;
while (block[0] != 'C' && block[1] != 'C') {
    System.out.println("enter number");
    block[i%2]=input2.next().charAt(0);
    i++;
    System.out.println(block);
}

有兩種方法可以做到這一點:

  1. 使用像HashMap這樣的大小自增加的數據結構。 最好的解決方案

  2. 創建一個大型2D數組char[][] block = new char[100][2]; 最多只能輸入100個

使用第二種方法,每當達到最大數量時,您都需要增加數組,這毫無意義,因為那樣您無論如何都要實現數據結構的底層。

我的建議是使用HashMap ,但我假設您尚未學習數據結構。 如果這是一項分配,我唯一可以建議的就是只使用一個具有固定大小的2D數組,並且只允許這么多的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM