請(qǐng)大家?guī)臀铱聪履睦镥e(cuò)了,謝謝!!
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("考試成績(jī)的前三名為:");
? ? ? ? HelloWorld hello=new HelloWorld();
? ? ? ? hello.print(scores);
? ? ? ?
? ? ? ??
? ? }
? ??
? ? //定義方法完成成績(jī)排序并輸出前三名的功能
? ??
? ? public int print(int []scores){
? ? ? ? Arrays.sort(scores);
? ? ? ? for(int i=scores.length-1;i>=0;i--){
? ? ? ? ??
? ? ? ? ? ? if((scores[i])>0&&(scores[i])<100){
? ? ? ? ? ? ? for(int j=0;j<3;j++)
? ? ? ? ? ? System.out.println(scores[i]);
? ? ? ? }
? ? ? ? }
? ? ? ? } ?
}
2016-07-15
錯(cuò)誤:自定義方法public int print(int []scores)規(guī)定了返回值類(lèi)型int,但方法體內(nèi)無(wú)return語(yǔ)句進(jìn)行返回值操作,故報(bào)錯(cuò)
修正:將int改為void
代碼邏輯問(wèn)題:? 1.if((scores[i])>0&&(scores[i])<100)樓主想用于篩選有效成績(jī),但在此題環(huán)境下較為冗雜,Array.sort()方法是默認(rèn)升序排列,樓主又使用了(int i=scores.length-1;i>=0;i--)循環(huán)條件,加之預(yù)設(shè)數(shù)組中只有一個(gè)負(fù)值,所以沒(méi)有必要
2.條件執(zhí)行體內(nèi)的嵌套循環(huán)邏輯錯(cuò)誤,執(zhí)行結(jié)果會(huì)變成一個(gè)有效成績(jī)輸出三次后,進(jìn)行下一次有效成績(jī)判斷。
修成建議:1.有效值判定只保留100臨界判定
2.定義一個(gè)計(jì)數(shù)變量,用于記錄有效值個(gè)數(shù)以判斷是否終止循環(huán),并刪除嵌套循環(huán)只輸出一次有效值