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

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

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]);
         }
    }   
}


提问者:fly_will 2016-08-07 18:01

个回答

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

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


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

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

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

    非常感谢~~