求大神解释这”i”为什么会报错,还有为什么输出成绩只有89

来源:7-1 编程练习

慕粉4146431

2016-11-21 22:43

package come.CaiXiang;

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

        

        

    }

    

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

    public void showTop3(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]);

    }

    

    

    


写回答 关注

2回答

  • mk_mjh
    2016-11-30 23:31:32
    因为“i” 作为局部变量 ,有它的作用范围,你后面的输出语句中的“i”明显超出了这个范围。


  • iOS_tht4018516
    2016-11-21 23:16:31

    i 需要定义在for以外,这样scores[i]才可以输出,   你可以通过打印,来监测变量的变化 以及最终的结果

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

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

1165186 学习 · 17581 问题

查看课程

相似问题