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

关于方法中的for循环的问题

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.score(scores);
        
        
        
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void score(int[] score1){
        Arrays.sort(score1);
        System.out.println("考试成绩的前三名为:");
        for(int i=score1.length-1,j=0;j<=3;i--,j++){
            if(score1[i]<=100&&score1[i]>=0){
                System.out.println(score1[i]);
            }
        }
    }
    
    
    
    
    
    
    
    
    
}

上面是我的代码

方法中j的初始值设置的是0,循环条件是j<=3,按理说应该输出四次但结果只输出了三次,什么问题?求大神解惑

正在回答

1 回答

scores={89,-23,64,91,119,52,73} 119大于100,所以你循环四次, if(score1[i]<=100&&score1[i]>=0)这个条件把119过滤掉了,这个写法是错的,应该这样写:


import java.util.*;

public class HelloWorld {

// 完成 main 方法

public static void main(String[] args) {

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

HelloWorld hello = new HelloWorld();

hello.score(scores);

}

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

public void score(int[] score1) {

Arrays.sort(score1);

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

for (int i = score1.length - 1, j = 0; j < 3; i--) {

if (score1[i] <= 100 && score1[i] >= 0) {

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

j++;

}

}

}

}


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

IDNW 提问者

明白了,谢谢!
2017-07-24 回复 有任何疑惑可以回复我~
#2

IDNW 提问者

非常感谢!
2017-07-25 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

关于方法中的for循环的问题

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