猿问

Exception in thread "main"

package com.THREE;
import java.util.Arrays;

public class CLASS_8_1 {		
// TODO Auto-generated method stub	
    public static void main(String[] args) {		
        int[]scores= {89,-23,64,91,119,52,73};		
        System.out.println("前三:");		
        CLASS_8_1 top=new CLASS_8_1();		
        top.getTop3(scores);	
    }
    public void getTop3(int[]scores) {		
        Arrays.sort(scores); // 先对数组从小到大排序		
        int num=0; // 计数器		
        for(int i=scores.length-1;i>=0;i++) { // 倒序判断,除了大于100的三位数字,就是前三名
    	    if(scores[i]>100||scores[i]<0) {				
    	    continue; // 如果成绩大于100或小于0,跳过该成绩,该成绩不进入计数器,但是for循环仍然继续运行
    	    }			
            num++;			
    	    if(num>3) {				
            break; // 如果计数器超过三位,跳出for循环			
    	    }			
            System.out.println(scores[i]); // 依次输出前三名的成绩		
        }
    }
}

Console:

前三:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7

at com.THREE.CLASS_8_1.getTop3(CLASS_8_1.java:26)

at com.THREE.CLASS_8_1.main(CLASS_8_1.java:19)


行数不一样,我原来的程序开头有注释,反正就是这里:

if(scores[i]>100||scores[i]<0) {

和这里:

top.getTop3(scores);


Amber_9333
浏览 695回答 2
2回答

移动的红烧肉

兄弟:for (int i = scores.length - 1; i >= 0; i++) 你既然想倒序循环,为什么不是 i--, 你 i++ 不是越来越大吗??

慕虎8459273

这个什么报错
随时随地看视频慕课网APP

相关分类

Java
我要回答