_Passion_
2020-07-13 10:19
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("考试成绩的前三名为:");
HelloWorld hello=new HelloWorld();
hello.showTop3(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void showTop3(int[] scores){
Arrays.sort(scores);
int num=1;
for(int i=scores.length-1;i>=0;i--){
if(scores[i]<0||scores[i]>100){
continue;
}
num++;
if(num>=3){
break;
}
System.out.println(scores[i]);
}
}
把num初始值改成0,break条件改成num>3就没问题了
你的num设置为1,那么刚运行i=7时,你的num就+1变成了2,接下来你输出了91这个数;运行i=6时,你的num+1变成了3,已经满足了if的条件,然后便执行break跳出循环了。所以num初始值为0,且if条件里面num>3,而不能大于等于。
break 跳出循环了,所以只执行了一次
Java入门第一季(IDEA工具)升级版
1165653 学习 · 17587 问题
相似问题