dancehall
dancehall
2018-08-21 09:01
采纳率: 100%
浏览 998
已采纳

数组越界,不知道该怎么解决,求哪位大神告知?

package Mytest;

public class Ages {
public static void main(String[] args) {
Ages hello=new Ages();
int maxscore = hello.getMaxAge();
System.out.println("最大年齡是:"+maxscore);
}
public int getMaxAge() {
int[] ages = {18, 23, 21, 19, 25, 29, 17};
int MaxAge = ages[0];
for (int tmp:ages) {
if(MaxAge<ages[tmp]) {
MaxAge=ages[tmp];
}
}
return MaxAge;

}

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • lxf512666
    NoBugNoCode 2018-08-21 09:09
    已采纳

    方法一:
    public static void main(String[] args) {
    Ages hello = new Ages();
    int maxscore = hello.getMaxAge();
    System.out.println("最大年齡是:" + maxscore);
    }
    public int getMaxAge() {
    int[] ages = { 18, 23, 21, 19, 25, 29, 17 };
    int MaxAge = ages[0];
    for (int tmp : ages) {
    if (MaxAge < tmp) {
    MaxAge = tmp;
    }
    }
    return MaxAge;
    }

    方法二:
    public static void main(String[] args) {
        Ages hello = new Ages();
        int maxscore = hello.getMaxAge();
        System.out.println("最大年齡是:" + maxscore);
    }
    public int getMaxAge() {
    int[] ages = { 18, 23, 21, 19, 25, 29, 17 };
    int MaxAge = ages[0];
    for (int tmp = 0; tmp < ages.length; tmp++) {
        if (MaxAge < ages[tmp]) {
            MaxAge = ages[tmp];
        }
    }
    return MaxAge;
    

    }

    点赞 评论
  • ejiao1233
    alunSemiconductor 2018-08-21 09:11

    这里你搞错了一个问题,tmp代表的是数组内容,不是下标,可以这样改一下:

     public int getMaxAge() {
            int[] ages = { 18, 23, 21, 19, 25, 29, 17 };
            int MaxAge = ages[0];
            for (int tmp : ages) {
                if (MaxAge < tmp) {
                    MaxAge = tmp;
                }
            }
            return MaxAge;
    
        }
    

    当然也可以用下标的方式:

     public int getMaxAge() {
            int[] ages = { 18, 23, 21, 19, 25, 29, 17 };
            int MaxAge = ages[0];
            for (int i=0;i<ages.length;i++) {
                if (MaxAge < ages[i]) {
                    MaxAge = ages[i];
                }
            }
            return MaxAge;
    
        }
    
    点赞 评论
  • qq_42698100
    qq_42698100 2018-08-22 07:50

    方法一:
    public static void main(String[] args) {
    Ages hello = new Ages();
    int maxscore = hello.getMaxAge();
    System.out.println("最大年齡是:" + maxscore);
    }
    public int getMaxAge() {
    int[] ages = { 18, 23, 21, 19, 25, 29, 17 };
    int MaxAge = ages[0];
    for (int tmp : ages) {
    if (MaxAge < tmp) {
    MaxAge = tmp;
    }
    }
    return MaxAge;
    }

    方法二:
    public static void main(String[] args) {
    Ages hello = new Ages();
    int maxscore = hello.getMaxAge();
    System.out.println("最大年齡是:" + maxscore);
    }
    public int getMaxAge() {
    int[] ages = { 18, 23, 21, 19, 25, 29, 17 };
    int MaxAge = ages[0];
    for (int tmp = 0; tmp < ages.length; tmp++) {
    if (MaxAge < ages[tmp]) {
    MaxAge = ages[tmp];
    }
    }
    return MaxAge;
    }

    点赞 评论
  • William_ZhaoZe
    William_ZhaoZe 2018-08-29 08:35

    public class Test2 {
    public static void main(String[] args) {
    Test2 hello = new Test2();
    int maxscore = hello.getMaxAge();
    System.out.println("最大年齡是:" + maxscore);
    }

    public int getMaxAge() {
        int[] ages = { 18, 23, 21, 19, 25, 29, 17 };
        // 假设数组的第一个数为最大值(是假设)
        int MaxAge = ages[0];
        for (int i = 1; i < ages.length; i++) {
            // 如果在数组中还有比我们设的最大值还要大的数,说明我们设的最大数根本不是数组的最大值
            if (MaxAge < ages[i]) {
                // 把就数组中比设的最大值还大的数相应的数赋给最大值,循环走完,得到的就是最大值
                MaxAge = ages[i];
            }
        }
        return MaxAge;
    }
    

    }

    点赞 评论

相关推荐