在Java中,数组下标越界通常发生在以下几种情况:
下标小于0 :数组下标从0开始,访问下标小于0的元素会导致越界。
下标大于等于数组长度:
访问下标大于等于数组长度(`array.length`)的元素也会导致越界。
空数组:
如果数组为空,则任何下标访问都会导致越界。
解决数组下标越界的方法:
使用数组长度进行判断
int[] array = {1, 2, 3, 4, 5};
int index = 3;
if (index >= 0 && index < array.length) {
int value = array[index];
System.out.println("数组元素值为: " + value);
} else {
System.out.println("数组下标越界!");
}
使用try-catch捕获异常
int[] array = {1, 2, 3, 4, 5};
int index = 5;
try {
int value = array[index];
System.out.println("数组元素值为: " + value);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界!");
}
注意数组的正确访问范围
int[] a = new int;
// a = 0;
// a = 1;
// a = 2;
// a = 3;
// a = 4;
// a = 5; // 这行代码会导致数组越界
正确的访问方式是:
int[] a = new int;
a = 0;
a = 1;
a = 2;
a = 3;
a = 4;
// a = 5; // 这行代码是错误的,应该删除
总结
数组下标越界发生在下标小于0或大于等于数组长度时。
使用数组长度进行判断或使用try-catch捕获异常可以避免数组下标越界。
注意数组的正确访问范围是从0到`array.length - 1`