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.show(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void show(int []scores)
{Arrays.sort(scores);
int sum=0;
for(int i=scores.length-1;i>=0;i--)
{ if(scores[i]>=0||scores[i]<=100){
continue;
}sum++;
if(sum>3){
break;}
System.out.println(scores[i]);
}
}
}
按楼主的意思,将这行代码改一下就可以了
if(scores[i]<0||scores[i]>100)
范围界定的时候 ,为了确保逻辑运算的顺序,要加()
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();
int[] real = hello.getArray(scores);
System.out.println("考试成绩的前三名为:");
for (int i = 0; i < real.length; i++) {
System.out.println(real[i]);
}
}
//定义方法完成成绩排序并输出前三名的功能
public int[] getArray(int[] scores){
int[] count = new int[3];
for(int i =0;i<scores.length;i++){
//升序排列
Arrays.sort(scores);
}
//倒序遍历
for ( int i = scores.length - 1,j=0; i >= 0; i--) {
if (scores[i]<0||scores[i]>100) {
continue;
}else{
count[j]=scores[i];
j++;
}
if(j>2){
break;
}
}
return count;
}
}