length-1是什么意思!

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:05:34
public class cy00{
public static void main(String args[]){
int i;
int a[]=new int[5];
for (i=0; i<5; i++) a[i]=i;
for (i=a.length-1; i>0; i--) System.out.println("a["+i+"]="+a[i]);
}
}

java的
那个i=a.length-1 什么意思 为什么运行后的结果是从大到小的!!!!

你不能说是length-1,应该说是a.length-1。这里的a表示你上面定义的那个整型一维数组,他的名字叫a对吧,然后a.length表示a数组的长度,这是一个方法,返回的是int的数,表示a数组的长度是几个。至于为什么要来个-1要从数组的排列来说,数组的第一个数的下标(index)是0吧,比如你定义的a长度为5,那么它的最后一个数的下标就是4,也就是用a[4]表示最后一个数。那个i是指的一个数,用来控制循环的,也就是用来控制循环打印多少次的。如果你不用a.length-1直接用a.length的话就会循环6次(因为第一个数下标是个0),那样就会报出数组下标越界异常,好像是ArrayIndexOutOfBoundsException.至于楼主说的为什么是从大到小的,我建议你的程序写规范一点,注意括号,就是只有一行也应该写括号,这是良好的编程习惯!你要是想从小到大,把第二个for里面的东西改成i = 0; i<=a.length-1; i++就OK了!
程序例子参考:
public static void main(String[] args) {
int i;
int[] a = new int[5];
for (i = 0; i < 5; i++) {
a[i] = i;
}
// for (i = a.length-1; i >= 0; i--) {
// System.out.println("a["+i+"]=" + a[i]);
// }
for (i = 0; i <= a.length-1; i++){
System.out.println("a["+i+"]=" + a[i]);
}
}