4.10
题目:
判断Largest函数是否有错误,尝试列出错误信息,给出解决方案
代码展示:
public class Main3 {
public static void main(String[] args){
int[] array = {};
int length = 10;
Largest(array,length);
if(array!= null) {
System.out.println("数组为空");
}else if(length!=0){
System.out.println("Largest不执行");
}else{
System.out.println("输出最大值");
}
}
private static int Largest(int list[], int length){
int i,max=0;
for(i= 0; i< (length - 1); i++){
if(list[i]> max){
max=list[i];}
}
return max;}
}
解决思路:
数组下标越界,假如数组array的下标在遍历过程中,实际上得到的是10,而得到的是比他下一位的数,即9,在数组初始化的时候,也就是申请了九个数组元素,这就会显示数组越界的错误,那么问题出现在了哪里呢
就是for循环在遍历的过程中,for循环的终止判断出现了问题,字符数组的内存申请范围是精确的,但是忽略了初始化为0的数组空间,这也就是申请了九个,实际上有十个,数组越界错误出现。