Java:ArrayIndexOutOfBoundException在数组中搜索整数值时发生
如果我在一个数组中寻找某个值(指针),而该值在这个数组中不存在,那么我将得到一个java。lang.ArrayIndexOutOfBoundsException。(见下面的代码) 如果该值存在于数组中,它就可以正常工作
似乎我已经坐在电脑前很久了,而且我已经看不见错误了,任何帮助都将不胜感激。谢谢大家!
public static void main(String[] args) {
int i = 0;
int[] array;
array = new int[5];
int needle = 20;
boolean inarray;
array[0] = 4;
array[1] = 7;
array[2] = 13;
array[3] = 29;
array[4] = 5;
while (i <= array.length && needle != array[i]){
i++;
}
inarray = !(i > array.length);
System.out.println("value in array: " + inarray);
}
线程“main”java中出现异常。lang.ArrayIndexOutofBounds异常:5 在测试中。测验main(Test.java:33) C:\Users\admin\AppData\Local\NetBeans\Cache\8.1\executor snippets\run。xml:53:Java返回:1 生成失败(总时间:0秒)
# 1 楼答案
改变
到
或
索引从0开始,直到长度为1
# 2 楼答案
数组。长度是5,所以当您试图获取数组[5]时,会出现错误。换衣服
到
# 3 楼答案
Java中的数组是基于零的(您知道Java不是Fortran):
array[0]
对长度非零的数组有效将停止条件的第一部分更改为
i < array.length
# 4 楼答案
您的问题在这行代码中
如示例中所示,数组的第一个位置是位置0,最后一个位置是位置4。当您执行
array.length
时,它返回5。因此,当i=5
时,您的i <= array.length
将计算为true,并将为您提供正在进行计算的异常array[i]
,因为array[5]
不存在将条件改为
i < array.length
,而不是i <= array.length