这个错误如何改正

来源:7-1 编程练习

写代码的阿木木

2016-03-23 20:18

package helloworld;
import java.util.Arrays;
/**
 *
 * @author Y
 */
public class HelloWorld 
{
    public static void main(String[] args) 
    {
        int[]scores={89 , -23 , 64 , 91 , 119 , 52 , 73};
        HelloWorld hello=new HelloWorld();
        hello.put(scores);
        
        
     }
    public  void put(int[]score){
      Arrays.sort(score);
      for(int i=score.length;i>score.length-3;i--)
      System.out.print(score[i]);
    }
    
    
    错误:!!
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
    at helloworld.HelloWorld.put(HelloWorld.java:25)
    at helloworld.HelloWorld.main(HelloWorld.java:18)
C:\Users\123\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
构建失败 (总时间: 3 秒)


写回答 关注

6回答

  • 竹竿先生
    2016-03-23 20:44:56
    已采纳

    int i=score.length;i>score.length-3;i--  错了,score.length应该是7,当i=7的时候,scores[7]就越界了,因为score下标最大只到6,

    写代码的阿木...

    确实 应该是.length-1

    2016-04-02 21:39:48

    共 1 条回复 >

  • 小阏呆
    2016-04-01 20:27:45

    数组下标越界

  • 锡隽
    2016-03-28 17:08:42

    scores.length是7 ,但是数组下标最大是6 所以应该scores.length-1 ,代码里还有一些空格的问题

  • 笑尿
    2016-03-26 12:33:06

    越界了i=score.length 但是 0<=i<score.length

  • 江湖旧雨
    2016-03-23 21:23:32

    角标错了   一楼说的对

  • 灬诺诺
    2016-03-23 20:47:23

    scores[i]里的i值是从零开始,int i=score.length改为int i=score.length-1,希望可以帮到你

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

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

1165172 学习 · 17581 问题

查看课程

相似问题