数组越界,不知道该怎么解决,求哪位大神告知?
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;
}
}
方法一:
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;
}
这里你搞错了一个问题,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;
}
方法一:
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;
}
}