慕虎1533765
2017-09-09 23:32
各位大神,为啥我把 int num=0 ; 写在循环体里面输出的结果却是
考试成绩前三名的是:
91
89
73
64
52
请各位大神指点迷津、、感激不尽,下面是我写的代码
import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int[] scores= new int[]{89,-23,64,91,119,52,73};
System.out.println("考试成绩前三名的是:");
HelloWorld threeMax= new HelloWorld;
threeMax.getMaxThree(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void getMaxThree(int[] arr){
Array.sort(arr);
for(int i=arr.length-1; i>=0; i--){
int num=0;//记录第几名
if(arr[i]>100 || arr[i]<0){
System.out.println("输入的成绩无效");
continue;
}
System.out.println(arr[i]);
num++;
if(num>3)
break;
}
}
}
可以单步执行调试下,或者加个输出语句把 num最后结果输出一下就明白了
你把int num=0写进for循环里,for循环每执行一次,num=0;
也就是说,第一次num=0,执行一次for循环num++=1;
第二次for循环时候num=0;执行完num++=1;
num永远是0和1
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题