為啥報錯呢?
import java.util.Arrays;
public class HelloWorld {
? ??
? ? //完成 main 方法
? ? public static void main(String[] args) {
? ? ? ? System.out.println("考試前三名為:");
? ? ? ? HelloWorld hello = new HelloWorld();
? ? ? ? int[] scores = {89,-23,64,91,119,52,73};
? ? ? ? hello.showTop3(scores);
? ? }
? ? //定義方法完成成績排序并輸出前三名的功能
? ? public void showTop3(int[] scores){
? ? ? ? Arrays.sort(scores);
? ? ? ? int num = 0;
? ? ? ? for(int i = scores.length; i >= 0 ;i--){
? ? ? ? ? ? if(scores[i] < 0 || scores[i] > 100){
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ? ? if(num > 3){
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println(scores[i]);
? ? ? ? }
? ? }
}
2019-08-15
for(int i = scores.length; i >= 0 ;i--) 改為for(int i = scores.length-1; i >= 0 ;i--)
下標越界 scores.length=7 ,而數(shù)組下標只有0-6? 執(zhí)行第一次時就下包越界了