8-1編程遇到的問題
各位大神,為啥我把 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;
? ? ? ? }
? ? }
}
2017-09-11
可以單步執行調試下,或者加個輸出語句把 num最后結果輸出一下就明白了
2017-09-10
你把int num=0寫進for循環里,for循環每執行一次,num=0;
也就是說,第一次num=0,執行一次for循環num++=1;
第二次for循環時候num=0;執行完num++=1;
num永遠是0和1