【问题标题】:Index out of bound in java [duplicate]java中的索引超出范围[重复]
【发布时间】:2025-11-28 16:25:01
【问题描述】:

为什么它的索引超出范围?

我在 ---> PICTURE

代码:

Scanner sc = new Scanner(System.in);
int a=0,b=0,n=0;
int[][] sum;
int q = sc.nextInt();

for(int i=0;i<q;i++){

    a = sc.nextInt();
    b = sc.nextInt();
    n = sc.nextInt();
    sum = new int[i][n];

    sum[i][0] = a +  (int)Math.pow(2,0) * b;

专注于此

    sum = new int[i][n];
    sum[i][0] = a +  (int)Math.pow(2,0) * b;

输入:

1
5 3 5

例外:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at Main.main(Main.java:19)

【问题讨论】:

  • 请查看这篇文章以了解更多关于ArrayIndexOutOfBoundsException *.com/questions/5554734/…
  • 请不要将代码发布为图片。请参阅meta.*.com/questions/285551/… 为什么。
  • 这里:sum = new int[i][n];,当i = 0 在您的第一次循环迭代中,您创建一个大小为 0 的数组。然后您尝试在此处sum[i][0] = a + (int)Math.pow(2,0) * b; 的索引 0 处访问大小为 0 的数组,这就是为什么你得到例外。查看链接的副本。
  • @user16320675 我的编辑只显示了图像。
  • @NagarajuChitimilla 好的,我会立即阅读规则,感谢您编辑我的帖子;_;适合阅读。

标签: java arrays indexoutofboundsexception


【解决方案1】:

对于您的第一次迭代,i = 0 并且您初始化了一个 int 数组 (int[0][5]),它是一个空数组。大小为 0、5。

同时,您正在访问位置 0 处的元素。为了获取位置 0 处的元素,数组的大小应大于 0。

【讨论】:

  • 好的,我明白了。非常感谢您回答我的第一篇文章;_;
  • 不客气?