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

不懂为什么这样。。。。

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

        }

 这里

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

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

                continue;

的意义是什么,,,为什么scores.length-1,,,

提问者:_Smile7 2016-07-14 19:52

个回答

  • 隔壁的老周
    2016-07-14 20:41:43

    数组的编号是从0开始的也就是说scores[0]是数组的第一个数字,如果数组有3个参数,第3个的编号就是scores[2],scores.length是数组的长度3,i是数组的编号,那么循环到第3个数的时候,i就应该是2,i=3的话就会循环到数组的第4个数造成越界

  • MrFrank0
    2016-07-14 20:18:09

    数组的编号是从0开始的也就是说scores[0]是数组的第一个数字,如果数组有100个参数,第一百个的编号就是scores[99],scores.length是数组的长度100,i是数组的编号,那么循环到第一百个数的时候,i就应该是99,i=100的话就会循环到数组的第101个数造成越界