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

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个回答

方法一:
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;

}

weixin_42843854
胤铎Leigh 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; }
大约一年之前 回复
dancehall
dancehall 回复lxf512666: 已关注
大约一年之前 回复
lxf512666
NoBugNoCode 回复dancehall: 刚刚学吗 关注一下 以后有问题可以问我
大约一年之前 回复
dancehall
dancehall 谢谢
大约一年之前 回复

这里你搞错了一个问题,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;

    }
dancehall
dancehall 谢谢
大约一年之前 回复

方法一:
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;
}

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;
}

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!