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]覆盖它,因此有五个0

于 2013-08-31T20:45:45.840 回答
1

你正在重新初始化你的数组,你应该使用

int[]x = new int[5];
x[0] = 3;
x[1] = 3;
// and the rest of your array

或者

int[]x = {3,3,...};

然后你可以打印你的数组,

尝试

import java.util.*;
// ... some code
System.out.println(Arrays.toString(x));
于 2013-09-01T01:10:21.633 回答