请问这是为什么,求详解必采纳

img


为什么在这里后面的for(int i = 0;i<score.length-1;i++) {
System.out.println(score[i]);
}时,他会少了一个结果?而相反,如果使用for(int i = 0;i<score.length;i++) {
System.out.println(score[i]);
}的时候他就是正确的不报错的?求详解必采纳

你为啥要-1呢,比如数组有5个元素【1,2,3,4,5】,那么它的length就是5,你遍历的时候从0开始,下标<5,那么下标就是0,1,2,3,4,这不正好遍历完了,你减1,就成了<4,那么遍历出来的下标就是0,1,2,3,必然会少一个

5个元素,数组下标是0,1,2,3,4 数组的长度是5
for(i=0;i<arr.length-1;i++) = for(i=0;i<5-1;i++) 这种情况i的值最大取3;因为i=4时,for中的判断 i<4是不成立的,就跳出循环了 此时遍历的是arr[0],arr[1],arr[2],arr[3]