Skip to content

索引越界

快速摘要

你试图用一个大得超过数组长度的索引(或负索引)去取元素,但那个位置根本不存在。

为什么发生

  • 循环的上界写错了,多访问了一个元素

  • 假设数组一定有某个位置的元素,但数组实际更短

  • 用变量做索引,但变量值计算错误

最小示例

✗ 错误代码
arr = [1, 2, 3]
print(arr[3])
✓ 修复代码
arr = [1, 2, 3]
print(arr[2])

arr 长度为 3,有效索引是 0、1、2。访问 arr[3] 越界。改成 arr[2] 取最后一个元素。

如何诊断

  • 查看错误信息中的索引值和数组长度

  • 在访问前打印数组长度和索引值,对比是否越界

  • 检查循环边界,确认是 < length 还是 <= length

如何修复

  • 访问前先判断索引是否在范围内:if (i < arr.length)

  • 修正循环上界,使用 < length 而非 <= length

  • at(-1)(JS)或 arr[-1](Python)安全访问末尾元素

如何预防

  • 循环遍历优先使用 for...offor item in arr,避免手动管理索引

  • 对来自外部的数组先检查长度再访问

相关资源

相关术语

相关课程

  • 数组

    了解数组索引从 0 开始的约定

相关练习

← 返回语言