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

java数组溢出,求解

java数组溢出的问题

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();

         

       

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

         hello.paixu(scores);

        

        

    }

    

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

    

    

    public void paixu(int[] scores){

        Arrays.sort(scores);

        int count = 0;

        

        

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

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

                continue;

            }

            

              count++;

            if(count>3){

                break;

            }

                

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

                }

                    }

        

                            }   请问这样写那个for循环为什么会出现数组溢出,而要写成i=scores.length-1;i>=0;i--


提问者:一百天后的荣光 2016-09-09 16:30

个回答

  • 慕粉0366153
    2016-09-09 20:13:50
    已采纳

    举个例子,你定一个一个数组

    int   a = new  int  [3]      那么a.length =3;    元素是a[0]   ,   a[1]   ,    a[2]    ;   并没有a【3】,正确代码如图http://img.mukewang.com/57d2a7690001bfff07810590.jpg只要减一下就好,望采纳

  • JustWannaHugU
    2016-09-09 16:54:37

    同学。以为数组是从0开始排序的,即scores[0]~scores[length-1]工length个元素。

    求采纳