關(guān)于方法中的for循環(huán)的問(wèn)題
import?java.util.Arrays; public?class?HelloWorld?{ ???? ????//完成?main?方法 ????public?static?void?main(String[]?args)?{ ????????int[]?scores={89,-23,64,91,119,52,73}; ????????HelloWorld?hello=new?HelloWorld(); ????????hello.score(scores); ???????? ???????? ???????? ????} ???? ????//定義方法完成成績(jī)排序并輸出前三名的功能 ????public?void?score(int[]?score1){ ????????Arrays.sort(score1); ????????System.out.println("考試成績(jī)的前三名為:"); ????????for(int?i=score1.length-1,j=0;j<=3;i--,j++){ ????????????if(score1[i]<=100&&score1[i]>=0){ ????????????????System.out.println(score1[i]); ????????????} ????????} ????} ???? ???? ???? ???? ???? ???? ???? ???? ???? }
上面是我的代碼
方法中j的初始值設(shè)置的是0,循環(huán)條件是j<=3,按理說(shuō)應(yīng)該輸出四次但結(jié)果只輸出了三次,什么問(wèn)題?求大神解惑
2017-07-20
scores={89,-23,64,91,119,52,73} 119大于100,所以你循環(huán)四次,?if(score1[i]<=100&&score1[i]>=0)這個(gè)條件把119過(guò)濾掉了,這個(gè)寫(xiě)法是錯(cuò)的,應(yīng)該這樣寫(xiě):
import java.util.*;
public class HelloWorld {
// 完成 main 方法
public static void main(String[] args) {
int[] scores = { 89, -23, 64, 91, 119, 52, 73 };
HelloWorld hello = new HelloWorld();
hello.score(scores);
}
// 定義方法完成成績(jī)排序并輸出前三名的功能
public void score(int[] score1) {
Arrays.sort(score1);
System.out.println("考試成績(jī)的前三名為:");
for (int i = score1.length - 1, j = 0; j < 3; i--) {
if (score1[i] <= 100 && score1[i] >= 0) {
System.out.println(score1[i]);
j++;
}
}
}
}