为了账号安全,请及时绑定邮箱和手机立即绑定

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;

        }

    }

}


正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~

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

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

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

num永远是0和1

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165458    人
  • 解答问题       17585    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

8-1编程遇到的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信