gpt4 book ai didi

java - 为什么这会给我这个 arrayoutofbounds 错误?

转载 作者:行者123 更新时间:2023-12-02 06:10:55 25 4
gpt4 key购买 nike

我有这些 while 循环和 for 语句。它正在做我想要的事情,打印数组的特定部分。但是,我不断收到越界声明。我想不通。我觉得我的 if 语句应该防止索引变得更大。

注意:除了创建此数组并初始化其值之外,我已经有一个方法,因此假设该数组是二维的。

有什么建议可以防止它越界吗?

目的是,我希望列和行都加一,直到它们不能再增加为止。

    int columnincrement = 0;
String spacing = "\t";
int diagcol=0;
int diagrow=0;
while(diagcol<themainarray[columnincrement].length)
{

System.out.println(spacing+themainarray[diagcol][diagrow]);
spacing+= "\t";
System.out.print("\n");

if (diagcol<=themainarray[columnincrement].length)
{

columnincrement++;
diagcol++;
diagrow++;

}


}

最佳答案

数组是从 0 开始的。

arr[arr.length]也会抛出异常

将 if 语句更改为以下内容,*注意 <还有-1 ;

if (diagcol<themainarray[columnincrement].length - 1)

如果您进行了更改,至少您的代码有可能在没有 indexoutofbounds 异常的情况下运行。这不是 100% 的机会。

<小时/>

如果themainarray.length小于themainarray[columnincriment].length比你也会得到一个异常(exception),因为你没有任何地方检查 themainarray.length

关于java - 为什么这会给我这个 arrayoutofbounds 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21893892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com