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){
int num = 0;
Arrays.sort(scores);
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]);
}
}
我己经改好了,把 System.out.println(scores[i]); 放在for那一层里就行了。ok
你把int i 放在for循环里面了,输出语句是在for循环外面使用i的
import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
HelloWorld h = new HelloWorld();
int[] scores = {89,-23,64,91,119,52,73};
System.out.println("考试成绩的钱三名为:");
h.paixu(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void paixu(int[] scores){
Arrays.sort(scores);
int count=0;
for ( int i = scores.length - 1; i >= 0; i-- ) {
if(count==3){
break;
}
if(scores[i]>=0&&scores[i]<=100){
System.out.println(scores[i]);
}else{
continue;
}
count++;
}
}
}
最后一行打印的地方错了,你的i定义是在for循环中的,在循环外就不能访问了。可以去了解一下java的变量作用域。修改代码如下:
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){
int num = 0;
Arrays.sort(scores);
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]);
}
}
}