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

搞不懂啊,想了半天也没搞懂

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        int[] scores = {89, -23, 64, 91, 119, 52, 73};

        HelloWorld hello = new HelloWorld();

        hello.post(scores);

        

    }

    

    //定义方法完成成绩排序并输出前三名的功能

    public void post(int[] nums){

        for(int num:nums){

            if(num>100 || num<0){

                num = 0;

            }

        }

        Arrays.sort(nums);

        System.out.println("考试成绩的前三名为");

        for(int i=nums.length-1; i>nums.length-4; i--){

            System.out.println(nums[i]);

        }

    }  

}

这里我用了foreach循环,但是怎么数组里面的负数和大于100的数还在啊?看了看别人的代码,也是这样写的啊

正在回答

1 回答

楼组,你给num赋值的时候并没有改变数组中的值呀,num只是一个临时变量呢

如果楼组非要用for each循环的话,可以这样改:

public void post(int[] nums){
        int j=0;
        for(int num:nums){
            if(num>100 || num<0){
                nums[j] = 0;
            }
            j++;
        }
        Arrays.sort(nums);
        System.out.println("考试成绩的前三名为");
        for(int i=nums.length-1; i>nums.length-4; i--){
            System.out.println(nums[i]);
        }
    }


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

你好吗丶 提问者

非常感谢!好像是这样额
2015-07-29 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

搞不懂啊,想了半天也没搞懂

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