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.stuScore(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void stuScore(int[] scores){
Arrays.sort(scores);
int count = 0;
for(int i=scores.length-1;i>=0;i--){
if(scores[i]>0 || scores[i]<100){
continue;
}
count++;
if(count>3){
break;
}
System.out.println(scores[i]);
if(scores[i]>0 || scores[i]<100){
count++;
if(count=>3){
break;
}
System.out.println(scores[i]);
}
if(scores[i]>0 || scores[i]<100){
continue;
}
这里很奇怪, ||代表的是并且,所以满足其中一个条件都会进入if里面,进入IF了,执行countinue命令,下面代码均不执行,跳出此次循环,进入下一次的FOR循环,怎么会有输出成绩呢?
我猜你没点运行
不对,你的for循环中,应该每次循环都会走continue;
continue是中断循环的一种方式,当执行了continue,则当前循环结束,continue后面的代码不再执行,而是进入下一次循环,所以你的System.out.println(scores[i]);应该是从未被执行
if(scores[i]>0 || scores[i]<100){
continue;
}
这里逻辑有问题,除了那个-23,你其他的数字都会因为上面的逻辑判断进入下一循环