下面for循环哪里while改成if会输出5个成绩,但是用while提交上去会提示系统忙,,
import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
int[] scores={89,-23,64,91,119,52,73};
System.out.println("考试成绩的前三名为:");
hello.up(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void up(int[] scores){
Arrays.sort(scores);
for(int i=scores.length-1,j=0;i>=0||j<3;i--){
if(scores[i]>=0){
while(scores[i]<=100){
System.out.println(scores[i]);
j++;
}
}
}
}
方法处应该这样改:
public void up(int[] scores){
Arrays.sort(scores);
for(int i=scores.length-1,j=0;i>=0&&j<3;i--){ //这里应该用&&,两个条件都必须符合
if(scores[i]>=0&&scores[i]<=100){ //判断应该按正规的来,你这个if while不好也不正规,感
System.out.println(scores[i]); //觉也不正确,就按if else来
j++;}
else
continue; //这个循环里面需要用到continue
}
}