关于Java数组赋值的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:36:33
本人做了一个简单的赋值,代码如下:
public class sz
{
public static void main(String args[])
{
int a[]=new int[10];
for (int i=0;i<=a.length;i++)
{ a[i]=i;
System.out.println(a[i]);
}
}
}
但运行后报了以下的错误,如下:
0
1
2
3
4
5
6
7
8
9
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at sz.main(sz.java:7)
请按任意键继续. . .
请问是那里错了,十分感谢!

a.length取出数组的长度,即10.
而数组的下表是从0开始的,即
0,1,2,3,4,5,6,7,8,9,10
你都取到了,共11个
所以报出数组越界异常

本人做了一个简单的赋值,代码如下:
public class sz
{
public static void main(String args[])
{
int a[]=new int[10];
for (int i=0;i<=a.length;i++) //改成<,当=的时候数组越界
{ a[i]=i;
System.out.println(a[i]);
}
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]=new int[10];
System.out.println(a.length);
for (int i=0;i<=a.length-1;i++)
{
a[i]=i;
//System.out.println(i+" ===");
System.out.println(a[i]);
}

}

a.length-1才对;
数组是从0开始计算的,你现在数组的容量是10,但是你想把11个数装进里面,所以最后一个没地方放了,所以是异常。

i<=a.length中的=号去掉,有=号说明数组a.length()是11而不是10

看来已经有正确答案了,路过....