4 回答

TA貢獻7條經(jīng)驗 獲得超4個贊
public?void?method(int[]?scores){ ????????Arrays.sort(scores); ????????int?sum=0; ????????for(int?i=scores.length-1;i>=0;i--){ ????????????if(scores[i]>100){ ????????????????continue; ????????????} ????????????sum++; ????????????if(sum>3){ ????????????????break; ????????????} ????????????????System.out.println(scores[i]); ???????????? ????????} }
朋友,你的代碼各種小問題,首先是你在if語句括號后面加了分號,導致if語句判斷完成以后啥都沒干就結束了,所以每次循環(huán)直接執(zhí)行花括號里的continue,然后循環(huán)就結束了,sum++開始,后面的代碼都不能執(zhí)行。其次,你的for循環(huán)里面,i是不能等于scores.length的,否則數(shù)組下標越界。寫代碼的時候要細心哦

TA貢獻7條經(jīng)驗 獲得超1個贊
public static void main(String[] args) {
? int[] scores={89,-23,64,91,119,52,73};
? System.out.println("考試成績的前三名為:");
? method1(scores);
}
//定義方法完成成績排序并輸出前三名的功能
? ? public static void method1(int[] scores){
? ? ? ? Arrays.sort(scores);
? ? ? ? int sum=0;
? ? ? ? for(int i=scores.length-1;i>=0;i--){
? ? ? ? ? ? if(scores[i]<0||scores[i]>100){
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ? ? sum++;
? ? ? ? ? ? if(sum>3){
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? ? ? System.out.println(scores[i]);
? ? ? ? ? ??
? ? ? ? }
? ? }

TA貢獻2條經(jīng)驗 獲得超0個贊
package?test; import?java.util.Arrays; public?class?HelloWorld?{ public??void?method(int[]?scores){ ?Arrays.sort(scores); ????????int?sum=0; ????????for(int?i=scores.length-1;i>=0;i--){//這個地方改為i=scores.length-1 ????????????if(scores[i]<0||scores[i]>100){//去掉“;” ????????????????continue; ????????????} ????????????sum++; ????????????if(sum>3){ ????????????????break; ????????????} ????????????????System.out.println(scores[i]); ????????} } public?static?void?main(String[]?args)?{ HelloWorld?hello=new?HelloWorld(); ????????int[]?scores={89,-23,64,91,119,52,73}; ???????? ????????System.out.println("考試成績的前三名為:");//調(diào)換下?lián)Q下順序 ????????hello.method(scores); } }
添加回答
舉報