import java.util.*;
public class E6{
public static void main(String args[]){
int a[]=new int[24];
int i=0;
Random rand=new Random();
for( i=0;i<=24;i++)
a[i]=rand.nextInt()%100;
for(i=0;i<=24;i++)
if (a[i]>a[i+1])
System.out.println(a[i]+"大于"+a[i+1]);
else if (a[i]<a[i+1])
System.out.println(a[i]+"小于"+a[i+1]);
else
System.out.println(a[i]+"等于"+a[i+1]);
}
}
编译通过,运行时提示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 24
at E6.main(E6.java:8)
谢谢!!!
public class E6{
public static void main(String args[]){
int a[]=new int[24];
int i=0;
Random rand=new Random();
for( i=0;i<=24;i++)
a[i]=rand.nextInt()%100;
for(i=0;i<=24;i++)
if (a[i]>a[i+1])
System.out.println(a[i]+"大于"+a[i+1]);
else if (a[i]<a[i+1])
System.out.println(a[i]+"小于"+a[i+1]);
else
System.out.println(a[i]+"等于"+a[i+1]);
}
}
编译通过,运行时提示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 24
at E6.main(E6.java:8)
谢谢!!!
public class E6{
public static void main(String args[]){
int a[]=new int[24];
int i=0;
Random rand=new Random();
try{
for( i=0;i<24;i++)
a[i]=rand.nextInt()%100;
for(i=0;i <24;i++){
if (a[i]>a[i+1])
System.out.println(a[i]+"大于"+a[i+1]);
else if (a[i] <a[i+1])
System.out.println(a[i]+"小于"+a[i+1]);
else
System.out.println(a[i]+"等于"+a[i+1]);
}
}
catch(Exception e){
System.out.println(e);
}
}
}
我运行可以了 你的下标越界了
for(int i:a){ // jdk 1.5及其以上
// TODO
}
for(int i=0;i<a.length;i++){ // 传统方式
// TODO
}
反正不能出现a[a.length]那样肯定会越界的,也就是说a[i+1]越了,稍稍改下就行了。比如a[i-1]>a[i]之类的
int i=0;
Random rand=new Random();
for( i=0;i <24;i++)
a[i]=rand.nextInt()%100;
for(i=0;i <23;i++)
if (a[i]>a[i+1])
System.out.println(a[i]+"大于"+a[i+1]);
else if (a[i] <a[i+1])
System.out.println(a[i]+"小于"+a[i+1]);
else
System.out.println(a[i]+"等于"+a[i+1]);
---------------------------------------------------------------
不知道楼主最后一个数想跟第几个数比较?
这是数组越界的意思
应该是你编写的代码中,又关数组的有不小心越界了
修改下应该就可以了
习惯不好,就算要那样操作,一般都要写成for( i=0;i < a.length();i++) {}1,长度不要去硬编码
2,i < 不要去 <=以上个人理解,仅供参考。
java.lang.ArrayIndexOutOfBoundsException这个异常就是数组下标越界的的意思
for( i=0;i <=24;i++) i的值是0-24,而你的数组长度为23,所以越界了。解决方法:1。for( i=0;i <24;i++)
2。for( i=0;i < a.length();i++)
输出的时候可以
for(int i:a){ // jdk 1.5及其以上
System.out.println(i);//遍历数组a
}
数组长度是10
但数组默认下标是从0开始的
所以最长为最大下标为a[9]
也就是a[a.length-1]
超过了
就会出异常Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
import java.util.*;
public class E6{
public static void main(String args[]){
int a[]=new int[24]; //总共24个
int i=0;
Random rand=new Random();
for( i=0;i <=24;i++)
a[i]=rand.nextInt()%100;
for(i=0;i <23;i++) //所以这里只能到<=23或者<24 但考虑到你最后有+1,所以只能
<=22或者<23 这样也全部遍历了
if (a[i]>a[i+1])
System.out.println(a[i]+"大于"+a[i+1]);
else if (a[i] <a[i+1])
System.out.println(a[i]+"小于"+a[i+1]);
else
System.out.println(a[i]+"等于"+a[i+1]);
}
}