求一个数组 int[] 的最大值 {4,-1,9,10,23} ,并得到对应的下标
public class max1{
public static void main(String[] args){
int [] array = {4,-1,9,10,23};
int max = array[0];
int index = 0;
for(int i = 0; i < array.length; i++ ){
if(max < array[i + 1]){
max = array[i + 1];
index = i + 1;
}
}
System.out.println("max=" + max + "index=" + index);
}
}
public class max2{
public static void main(String[] args){
int [] array = {4,-1,9,10,23};
int max = array[0]; //将数组中第一个数4赋值给max
int index = 0; //定义下标变量
for(int i = 1; i < array.length; i++ ){
if(max < array[i]){ //让已定义的最大值与第二个数比大小
max = array[i]; //如果第二个数大,将第二个数的值赋给max
index = i;
}
}
System.out.println("max=" + max + "index=" + index);
}
}
观察max1与max2有什么不同吗?
max1的编译结果为:
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
// at max.main(max.java:6)
max2可以正常编译
原因:
for 循环内的if语句中的数组array[],[]中不可写i+1,
本文通过两个Java示例程序max1和max2演示了如何寻找数组中的最大值及其对应的下标,并对比分析了两种实现方式的区别。max1程序由于数组越界导致异常,而max2则正确实现了功能。
526

被折叠的 条评论
为什么被折叠?



