一个JAVA的小问题 怎么会数据越界呢?

来源:百度知道 编辑:UC知道 时间:2024/05/20 23:39:31
//Average an array of values
class Average{
public static void main(String args[]){
double nums[]={10.1,11.2,12.3,13.4,14.5};
double result=0;
int i;
for(i=0;i<5;i++);
result=result+nums[i];
System.out.println("Average is"+result/5);
}
}
把错误提示发下:Exception in thread"main"java.lang.ArrayIndexOutOfBoundsEXCEPTION:5 at Average.main(average.java:8)

for(i=0;i<5;i++);
注意你这句后面写了";",因此这是一个空循环,出来时i已经是6了,因此下一句result=result+nums[i]; 中你引用了nums[6],当然就越界了

你for 循环后面为什么打 ; 号,去掉

for(i=0;i<5;i++); 这个循环后有个分号 ,跳出循环的时候i=5,下一条语句result=result+nums[i];
nums[5]当然越界

for(i=0;i<5;i++);

这后面多了个;,去掉就好了