求大神解释下,为什么错了????

public class m8_1 {
 public static void main (String[] args) {
  System.out.println("前三名的成绩依次是:");
  int scores []  ={89,-23,64,91,119,52,73};
  m8_1 hello =new m8_1();
  hello.mY(scores);
 }
 public void mY (int scores[]){
  Arrays.sort(scores);
  int count = 1;
  for(int i=scores.length; i>=0 ; i--){
   if(scores[i] > 0&&scores[i] < 100){
    System.out.println(scores[i]);
    count++;
    if(count==3){
    break; 
    }
    else{
     continue;
    }
   }
   else{
    continue;
   }
   
  }
 }
}



孟应杰
浏览 1116回答 3
3回答

慕粉4065503

for(int i=scores.length; i>=0 ; i--){}i的值不能等于数组的长度的 ,数组的长度是从0开始的。举个列子长度为2的scores[]数组只有scores[0],scores[1]这两个,你让i=2,系统会报错,所以这句改成for(int i=scores.length-1; i>=0 ; i--){}还有个错误是count这变量是控制for循环的次数的 你要输出3次就要让count自加3次,在你的程序中只有2次,可以将count初始值改为0,或者将if中条件count==0改为count>3.

望远

 数组下标越界了for(int i=scores.length; i>=0 ; i--){}应该是从i=scores.length-1开始还有一个错误就是应该将count的值赋初值0,才符合逻辑
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java