package imoocjava8_1;import java.util.Arrays;public class helloWorld {public static void main(String[] args){ int[] scores ={89,-23,64,119,52,73};//成績數組 helloWorld big3 = new helloWorld();//創建新的對象并命名為big3? ? big3.showtop(scores);//調用方法“showtop3”,并導入成績數組? ? }/*?* 功能:輸出考試成績的前三名,定義一個整型參數數組的方法,用來傳入成績數組?*/ public void showtop(int[] scores){ Arrays.sort(scores);//使用Arrays.sort()方法實現數組的排序 int num=0;//保存有效成績的數量 for(int i=scores.length-1;i>=0;i--){//倒序遍歷數組中的每一個分數 if(scores[i]<=0&&scores[i]>=100){//判斷成績的有效性 continue;//如果成績無效,則跳出本次循環,忽略此成績 } num++;//有效成績數+1 if(num>3){//判斷有效成績的數量 break;//如果成績大于3,則結束循環,準備輸出成績的前三名 } System.out.println("成績排名前三的是:"+scores[i]);} }}運行結果如下:成績排名前三的是:119成績排名前三的是:89成績排名前三的是:73
5 回答

漠然的笑
TA貢獻26條經驗 獲得超9個贊
你的這句 if(scores[i]<=0&&scores[i]>=100){//判斷成績的有效性 ? 這個判斷條件有問題,永遠不會走到,而且所有數都滿足正常需求,哪里有數字同時<0并且又>100的啊,這里邏輯錯了應該用|| ? 。 ? &&:表示邏輯與,表示前后2個條件必須同時滿足才可以執行判斷中的語句,||表示邏輯或,只要有一個判斷條件滿足就可以執行。同時注意&&的短路現象,就是第一個條件不滿足,后面不用看了,肯定走不到這塊判斷邏輯。還要學會 ?& 與 | 的位運算。

明漠君
TA貢獻16條經驗 獲得超6個贊
&&是與,||是或。
可以理解為
?(小張是學生)&&(小張是女孩)→→→→小張是女學生;
(小張是學生)||(小李是學生)→→→→小張和小李中至少有一個滿足“是學生”。
添加回答
舉報
0/150
提交
取消