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);
移动的红烧肉
慕虎8459273
相关分类