想问问这个是怎么回事,结果为什么这样啊

package 数组;

import java.util.Scanner;

public class Nixushuchu {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] a=new int[5];
    for(int i=0;i<a.length;i++) {
        Scanner scanner=new Scanner(System.in) ;
        System.out.println("请输入一个数");
        a[i]=scanner.nextInt();
    }
    for(int i=a.length-1;i>=0;i--) {
        System.out.print("a["+i+"]="+a[i]+" ");
    }
    System.out.println("\n the length is\t"+a.length);
}

}
结果如下
请输入一个数
6
请输入一个数
8
请输入一个数
4
请输入一个数
2
请输入一个数
9
a[4]=9 a[3]=2 a[2]=4 a[1]=8 a[0]=6
the length is 5

有什么问题吗 你前面往数组里面给值 后面一个倒叙遍历数组,最后打印数组长度

这输出没问题,你赋值的时候索引从04,输出的时候从40