為什么輸出的結果一直是timeout? 這是死循環(huán)嗎?
我運行下面的代碼的結果永遠是“timeout”。自己也看不出毛病,請大神指點一下。
import?java.util.Arrays; public?class?HelloWorld?{ ???? ????//完成?main?方法 ????public?static?void?main(String[]?args)?{ ????????int[]?scores={89,-23,64,91,119,52,73}; ????????System.out.println("考試成績前三名為:"); ????????HelloWorld?hello=new?HelloWorld(); ????????hello.scoreTop3(scores); ????} ???????? ????//定義方法完成成績排序并輸出前三名的功能 ????public?void?scoreTop3(int[]?scores){ ????????Arrays.sort(scores); ????????int?count=0; ????????for(int?i=scores.length?-?1;i>=0;i--){ ????????????while(scores[i]<0||scores[i]>100){ ????????????????continue; ????????????} ???????? ????????????count++; ????????????if(count>3){ ????????????????break; ????????????} ???????????? ????????????System.out.println(scores[i]); ???????? ????} ???? } }
? ? //完成 main 方法
? ? public static void main(String[] args) {
? ? ? ? int[] scores={89,-23,64,91,119,52,73};
? ? ? ? System.out.println("考試成績前三名為:");
? ? ? ? HelloWorld hello=new HelloWorld();
? ? ? ? hello.scoreTop3(scores);
? ? }
? ? ? ??
? ? //定義方法完成成績排序并輸出前三名的功能
? ? public void scoreTop3(int[] scores){
? ? ? ? Arrays.sort(scores);
? ? ? ? int count=0;
? ? ? ? for(int i=scores.length - 1;i>=0;i--){
? ? ? ? ? ? while(scores[i]<0||scores[i]>100){
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ??
? ? ? ? ? ? count++;
? ? ? ? ? ? if(count>3){
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? ? ? System.out.println(scores[i]);
? ? ? ??
? ? }
? ??
}
}
2018-02-25
18行那里是要做if判斷啊,寫成while了,scores[i]一直是119,條件成立進入循環(huán),接著continue又回到了while,所以死循環(huán)了。