关于#java#的问题,请各位专家解答!

    int [] array01={11,22,33,44,55};
    ArrayTraverse(array01);
}
public static void ArrayTraverse(int [] array){
    System.out.print("[");
    for(int i=0;i<array.length-1;i++){
        System.out.print(array[i]+", ");
    }
    System.out.println(array.length-1+"]");
}

}

求指教:为什么这个输出的是{11 22 33 44 4}?

array01长度是5,你循环5-1次自然只能输出4位,最后一位4是你循环结束后输出5-1得来的

你的for循环里输出的,数组0-3的索引对应的值,最后的输出是数组的长度减去1,也就5-1。所以输出{11 ,22, 33, 44, 4}

如果你想遍历输出完整的数组信息,可以这样写

    System.out.print("[");

    for(int i=0;i<array.length;i++){
        if(i==0){
           System.out.print(array[i]);
        }else{
           System.out.print(","+array[i]);
        }    

    }

    System.out.println("]");

最后一行改为 System.out.println(array[array.length-1]+"]");

不用减一就行了

改一:

public static void ArrayTraverse(int [] array){
    System.out.print("[");
    for(int i=0;i<array.length-1;i++){
        System.out.print(array[i]+", ");
    }
    System.out.println(array[array.length-1]+"]");
}


改二:

public static void ArrayTraverse(int [] array){
  System.out.println(Arrays.toString(array));
}

img