此代码打印的数组为0 0 0 0 0 5而不是预期的数组

时间:2013-08-31 20:43:43

标签: java arrays

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。可能是什么错误?

5 个答案:

答案 0 :(得分: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数组,其中包含您指定的元素值。

答案 1 :(得分:1)

x = new int[5];

将数组重新初始化为全零。删除该行。

答案 2 :(得分: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);
    }

答案 3 :(得分:1)

好吧,您正在将数组重新初始化为0,0,0,0。

当你写int [] x = {3,3,4,2,7};它用你想要的值初始化数组,但在下一行你用“new”int [5]覆盖它,因此五个0

答案 4 :(得分:1)

您正在重新初始化阵列,您应该使用

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

OR

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

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

尝试

import java.util.*;
// ... some code
System.out.println(Arrays.toString(x));