为了账号安全,请及时绑定邮箱和手机立即绑定

所以到底哪错啦!大神快来拯救我

所以到底哪错啦!大神快来拯救我

空候满庭花雨 2016-01-09 10:38:48
 public class HelloWorld {        //完成 main 方法    public static void main(String[] args) {                // 创建对象,对象名为hello  HelloWorld hello = new HelloWorld();             // 调用方法并将返回值保存在变量中        int maxScore=hello.getMaxAge();      // 输出最大年龄  System.out.println("最大年龄为:" + maxScore);  } /*  * 功能:输出学生年龄的最大值      * 定义一个无参的方法,返回值为年龄的最大值     * 参考步骤:     * 1、定义一个整形数组 ages ,保存学生年龄,数组元素依次为 18 ,23 ,21 ,19 ,25 ,29 ,17     * 2、定义一个整形变量 max ,保存学生最大年龄,初始时假定数组中的第一个元素为最大值     * 3、使用 for 循环遍历数组中的元素,并与假定的最大值比较,如果比假定的最大值要大,则替换当前的最大值     * 4、使用 return 返回最大值  */ public int getMaxAge() {        int [] ages ={18,23,21,19,25,29,17};        int max=ages[0];        for(int i=0;i<=ages.length;i++){            if (max<=ages[i]){                max=ages[i];            }        }        return max;            }}  这是提示的错误Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at HelloWorld.getMaxAge(HelloWorld.java:27) at HelloWorld.main(HelloWorld.java:9)
查看完整描述

9 回答

?
蜗牛快跑0

TA贡献3条经验 获得超0个赞

数组下标越界 

查看完整回答
反对 回复 2016-01-14
?
qq_灰太狼_27

TA贡献7条经验 获得超1个赞

数组越界异常

查看完整回答
反对 回复 2016-01-14
?
爱与恨

TA贡献11条经验 获得超0个赞

因为0,1,2,3,4,5,6,7是八个数,最后一次循环arg[7]是去取第八个数据,但是你的数组只有7个数据

查看完整回答
反对 回复 2016-01-12
?
K_clouds

TA贡献2条经验 获得超4个赞

你的代码没错,在文本中执行可以1

查看完整回答
反对 回复 2016-01-12
?
我埋藏的东西你别挖

TA贡献13条经验 获得超14个赞

for循环的 小于等于去掉等于 或者是小于等于length-1

查看完整回答
反对 回复 2016-01-12
?
慕虎6487783

TA贡献2条经验 获得超0个赞

数组越界:

int [] ages ={18,23,21,19,25,29,17};

数组长度为7;

索引开始为0;

所以这里for(int i=0;i<=ages.length;i++)多循环了一次共循环了八次,应改为for(int i=0;i<ages.length;i++)

查看完整回答
反对 回复 2016-01-10
?
平凡愿安静

TA贡献4条经验 获得超0个赞

for(int i=0;i<=ages.length-1;i++){
            if (max<=ages[i]){
                max=ages[i];
            }

查看完整回答
反对 回复 2016-01-09
?
韬鸽

TA贡献2条经验 获得超0个赞

   for(int i=0;i<=ages.length;i++){
            if (max<=ages[i]){
                max=ages[i];
            }
        }

数组越界了,应该是:for(int i=0;i<ages.length;i++)


查看完整回答
反对 回复 2016-01-09
?
仙人掌的吻

TA贡献3条经验 获得超0个赞

设计数据交换都要加一个中间变量,比如temp,    temp=a;  a=b; b=temp;就是a和b 的数据交换!

查看完整回答
反对 回复 2016-01-09
  • 9 回答
  • 0 关注
  • 1630 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信