public class TestArray_1 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
for(int i=0; i<=a.length;i++){
System.out.print(a[i]+"");
}
}
}12345Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at TestArray_1.main(TestArray_1.java:5) (编译器显示的结果
)
为什么我运行这个程序,编译器会显示这些东西给我,我在尚学堂的视频上看到的他不是用这个编译器运行的,而是直接在电脑里面打的命令提示符,他显示的结果不是这样的。
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
for(int i=0; i<=a.length;i++){
System.out.print(a[i]+"");
}
}
}12345Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at TestArray_1.main(TestArray_1.java:5) (编译器显示的结果
)
为什么我运行这个程序,编译器会显示这些东西给我,我在尚学堂的视频上看到的他不是用这个编译器运行的,而是直接在电脑里面打的命令提示符,他显示的结果不是这样的。
因为数组下标是从0开始的,所以循环是小于数组长度就行了,不用等于for(int i=0; i<a.length;i++){
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
//for(int i=0; i<=a.length;i++){ 多了个等号,导致数组越界
for(int i=0; i<a.length;i++){System.out.print(a[i]+"");
}
}
}
楼上正解,你那里多了个“=” 这样当然i=5的时候,
就越界了,所以会报一个.ArrayIndexOutOfBoundsException
a.length是指里面的个数。有五个。而数组下标是从0开始的。所以下标为5时数组下标越界了
public static void main(String []aa){
int[] a = {1,2,3,4,5};
for(int i=0; i<a.length;i++)
{
System.out.print(a[i]+"");
}
}
}
显示的结果是12345
应将for(int i=0; i<=a.length;i++) 改成for(int i=0; i<a.length;i++)