【发布时间】:2014-02-19 22:24:59
【问题描述】:
我有这些 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++;
}
}
【问题讨论】:
-
考虑实际调试问题。
-
(完整的异常消息是什么?异常消息很可能会告诉您到底出了什么问题。)
-
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at TwoDimensionalArray.mainDiagonal(TwoDimensionalArray.java:162) at TwoDimensionalArray.main(TwoDimensionalArray.java:38)) -
themainarray有多大? -
请注意,您的两个
while语句正在测试数组的相同维度,因此当您到达末尾时,几乎可以保证在第一个while中出现异常。