在慕課網學習的時候遇到了這樣一個Java編程練習題,正好對所學習的Java基礎知識檢驗一下:
~~~
請根據所學知識,編寫一個Java程序,實現輸出考試成績的前三名
要求:
1考試成績已保存在數組scores中,數組元素依次為89 , -23 , 64 , 91 , 119 , 52 , 73
2要求通過自定義方法來實現成績排名并輸出操作,將成績數組作為參數傳入
3要求判斷成績的有效性( 0—100 ),如果成績無效,則忽略此成績
~~~
我自己分析了一下這個程序的過程:
(1)首先是定義一個包含整型數組參數的方法,用來接收成績數組,進行成績排序并輸出前三名
具體的步驟是:
A在方法中使用Arrays類的sort( )方法對數組進行排序,默認按升序排列,注意Arrays類的使用需要導入;
~~~
//引入數組類
import java.util.Arrays;
~~~
B由于只需要輸出考試成績的前三名,所以定義一個變量,統計有效成績的前三名的數量;
C使用 for 循環遍歷數組中的元素,由于要輸出的是前三名成績,所以從后往前遍歷,即倒序遍歷;
~~~
for(int i = scores.length - 1; i >= 0; i-- ) {
}
~~~
D在for循環中判斷成績的有效性,如果成績小于 0 或大于 100 ,則使用continue忽略此成績;
E如果成績有效,則有效成績數加1。判斷有效成績的個數,如果有效成績數等于3 ,則結束循環,只輸出成績的
前三名;
(2)完成 main 方法
A定義一個成績數組 scores ,保存預定的考試成績89 , -23 , 64 , 91 , 119 , 52 , 73;
B調用自定義方法,傳入成績數組,完成成績的輸出;
具體實現的代碼為:
~~~
//引入數組類
import java.util.Arrays;
public class Test {
//完成 main 方法
public static void main(String[] args) {
//創建HelloWorld類的實例對象
Test test=new Test();
//定義一個整型數組
int[] scores={89,-23,64,91,119,52,73,-45,78,168};
System.out.println("考試成績的前三名為:");
//調用類的方法,輸出結果
test.result(scores);
}
//定義方法完成成績排序并輸出前三名的功能
public void result(int[] scores){
//使用數組的sort()方法進行排序
Arrays.sort(scores);
//初始化變量
int count=0;
for(int i=scores.length-1;i>=0;i--){
//若進入循環不是有效的成績時,跳過這個成績
if(scores[i]<0||scores[i]>100){
continue;
}
count++;
System.out.println(scores[i]);
//累計輸出的分數個數為3時,中止循環
if(count==3){
break;
}
}
}
}
~~~
輸出的結果:
