猿问

求java大神解答

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));
 }
}

为什么会报错 一脸懵逼


钊兄兄4281648
浏览 1351回答 1
1回答

慕婉清0_郁乱我心

在 if (cont>3) 这里 是可以的 但是你定义的 数组   为int[] score = new int[3]; 所以 索引最高为2但是你在  score[count] = scores[i];   这里的 时候 count 的值 是可以 取到 3 的. 所以 就会报java.lang.ArrayIndexOutOfBoundsException        数组下标越界 异常注意:         数组的 下标最大 为 数组长度(个数) 减一, 因为 index 是从 0 开始的!
随时随地看视频慕课网APP

相关分类

Java
我要回答