0
class ArrayPrint {

    static void arrayPrinter(int[] x) {
        for (int i = 0; i < x.length; i++) {
            System.out.println(x[i]);
        }
    }

    public static void main(String... S) {

        int[] x = {3, 3, 4, 2, 7};
        x = new int[5];
        arrayPrinter(x);
        System.out.println(x.length);
    }
}

予想される配列は印刷されていません。代わりに印刷されてい0 0 0 0 0ます。エラーは何ですか?

4

5 に答える 5

4
int[] x = {3,3,4,2,7};
x = new int[5]; // re-initializing

アレイを再初期化しています。デフォルトでは、新しい配列の要素値はすべて 0 になります。

を削除するだけです

x = new int[5];

この表記

int[] x = {3,3,4,2,7};

指定した要素値を使用して、サイズ 5 の int 配列を作成します。

于 2013-08-31T20:44:18.367 に答える
1
x = new int[5];

配列をすべてゼロに再初期化します。その行を削除します。

于 2013-08-31T20:44:20.590 に答える
1

xステートメントで配列を再初期化します

x = new int[5];

デフォルトでは、配列の値は 0 になります。これが、出力を取得する理由です。だから外して

public static void main(String...S) {    
      int[] x = {3,3,4,2,7};
      arrayPrinter(x);
      System.out.println(x.length);
    }
于 2013-08-31T20:44:57.170 に答える
1

さて、配列を 0, 0, 0,0 に再初期化しています。

int[] x = {3,3,4,2,7}; と書くと 目的の値で配列を初期化しますが、次の行で「新しい」int [5]で上書きするため、5つの0

于 2013-08-31T20:45:45.840 に答える