为什么if条件里面为(scores[i]<100 && scores[i]>0)后面显示出来的成绩会把119也显示出来,谢谢大侠们!

来源:7-1 编程练习

fly_will

2016-08-07 18:01

import java.util.Arrays;
public class HelloWorld {
    
    //完成 main 方法
    public static void main(String[] args) {
     int[] scores={89,-23,64,91,119,52,73};
    System.out.println("考试成绩的前三名是:");
    HelloWorld hello= new HelloWorld();
    hello.rank(scores);
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void rank(int scores[]){
         Arrays.sort(scores);
         int sum=0;
         for(int i=scores.length-1;i>=0;i--){
             if(scores[i]<100 && scores[i]>0){
                 sum++;    
             }
             if (sum>2){
                 break;
             }
             System.out.println(scores[i]);
         }
    }   
}


写回答 关注

3回答

  • 西湖渔夫
    2016-08-07 19:18:42
    已采纳

    你把System.out.println(scores[i]);放到for循环外面了,应该放到for循环里面


    fly_wi...

    非常感谢~~

    2016-08-07 21:32:02

    共 1 条回复 >

  • 子轩大人
    2016-08-07 23:57:15

    你把System.out.println(scores[i])应该放到if(scores[i]<100 && scores[i]>0)里面

    fly_wi...

    谢谢~~

    2016-08-19 18:57:00

    共 1 条回复 >

  • fly_will
    2016-08-07 21:31:38

    非常感谢~~

Java入门第一季(IDEA工具)升级版

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

1165172 学习 · 17581 问题

查看课程

相似问题