问答详情
源自:7-1 编程练习

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;

        }

    }

}


提问者:慕虎1533765 2017-09-09 23:32

个回答

  • 慕仙0519928
    2017-09-11 21:12:41

    可以单步执行调试下,或者加个输出语句把 num最后结果输出一下就明白了

  • 打代码的唐老鸭
    2017-09-10 09:19:33

    你把int num=0写进for循环里,for循环每执行一次,num=0;

    也就是说,第一次num=0,执行一次for循环num++=1;

    第二次for循环时候num=0;执行完num++=1;

    num永远是0和1