package imooc;import java.util.Arrays;public class HelloWorld { public static void main(String[] args) { HelloWorld helloworld = new HelloWorld(); int[]scores = new int[] {23,34,45,21,119,-223,72}; helloworld.Sort(scores); //报错 } public void Sort(int[]scores) { Arrays.sort(scores); int[]score = new int[3]; int count=0; for(int i=0;i<scores.length;i++) { if(scores[i]>100) { continue; } else { if(count>3) { break; } else { score[count] = scores[i]; //报错 count++; } } } System.out.println(Arrays.toString(score)); }}为什么会报错 一脸懵逼
1 回答
已采纳
慕婉清0_郁乱我心
TA贡献22条经验 获得超43个赞
在 if (cont>3) 这里 是可以的 但是你定义的 数组 为int[] score = new int[3]; 所以 索引最高为2
但是你在 score[count] = scores[i]; 这里的 时候 count 的值 是可以 取到 3 的. 所以 就会报
java.lang.ArrayIndexOutOfBoundsException 数组下标越界 异常
注意:
数组的 下标最大 为 数组长度(个数) 减一, 因为 index 是从 0 开始的!
添加回答
举报
0/150
提交
取消