0

前の値を置き換えずに反復するために固定長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 を入力すると、配列は反復を停止する必要があります。

ありがとうございました

4

2 に答える 2

0

これを行うには、次の 2 つの方法があります。

  1. のような自己サイズ増加データ構造を使用しHashMapます。おそらく最良の解決策

  2. 大きな 2D 配列を作成しますchar[][] block = new char[100][2];。これは最大 100 入力までしか機能しません

2番目のアプローチでは、最大量に達するたびに配列を増やす必要がありますが、これはかなり無意味です。とにかくデータ構造の内部にあるものをほとんど実装することになるからです。

私の提案は を使用することHashMapですが、まだデータ構造を学んでいないことを前提としています。これが割り当てである場合、私が提案できる唯一のことは、サイズが設定された2D配列を使用し、非常に多くの入力のみを許可することです。

于 2013-10-26T10:49:03.623 に答える
0

これは、あなたの望むことですか?ループは、インデックス[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);
}
于 2013-10-26T10:20:19.817 に答える