java小编程运行时有问题。

来源:百度知道 编辑:UC知道 时间:2024/09/28 11:29:41
public class PaiXu{
public static void main(String args[]){

int [] SCORE={99,80,70,86,75,68,59,88,74,78};
String [] NAME={"张三","李四","王五","赵六","周杰","大雄","小小","水格","查尔","威联"};

for(int j=0;j<10;j++)
for(int i=0;i<10-j;i++)
if(SCORE[i]<SCORE[i+1])
{
int temp1=SCORE[i+1];
SCORE[i+1]=SCORE[i];
SCORE[i]=temp1;

String temp2=NAME[i+1];
NAME[i+1]=NAME[i];
NAME[i]=temp2;
}

System.out.println("排序后的成绩:");
for(int i=0;i<SCORE.length;i++)
{
System.out.println(NAME[i]+": "+SCORE[i]);
}
}
}
编译时通过了,但运行时出现了如下的错误:
F:\>java PaiXu
E

ArrayIndexOutOfBoundsException
这个是数组越界错误..

这个是冒泡算法吧...很简单的..

看看我改了什么,再自己想一想吧。。
for(int i=0;i<9-j;i++)

冒泡写错了,有溢出,应该是9-j;

java.lang.ArrayIndexOutOfBoundsException,这个异常的意思是说你数据越界了。
你写意i和j都小于10这里是没错,但是你地循环里出现了i+1这样的下标就出问题了,加为如果i=9的话,执行到数据的下标i+1=10的地方就会越界。
注意考虑边界值的情况!