为什么输出报错?

来源:7-1 编程练习

八月末央262

2018-03-28 18:02

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


写回答 关注

2回答

  • 八月末央262
    2018-03-29 17:31:52

    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.a (scores);    

            

        }

        

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

        public void  a(int[] scores){

            Arrays.sort(scores);

            int num=0;

            for(int i =scores.length-1;i>=0;i--){

                if(scores[i]<0||scores[i]>100)

                {continue;}

                num++;

                if(num>3)

                {break;}

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

                

            }

        

        }

        

        

        

        

        

        

        

        

        

    }

    重写了一次好像可以了


  • beyond丶
    2018-03-28 19:02:58

    for循环的条件错了,你写的i在0和3之间才能循环,但i的初始值就是scores.length-1,等于4,然后就跳出循环了啊

    八月末央26...

    但是如果把n<=3放在后面写成if语句也报错啊

    2018-03-29 16:51:08

    共 1 条回复 >

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

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

1165574 学习 · 17587 问题

查看课程

相似问题