是什么导致这个循环走出界限?

时间:2013-02-26 06:05:08

标签: java loops while-loop indexoutofboundsexception

我正在写一个单词查找游戏,但无法找到while循环给我ArrayIndexOutOfBounds错误的原因。该错误表明它在这一行:grid[i-1][j-1]=kb.next();,但我不明白为什么?

Code screen shot

3 个答案:

答案 0 :(得分:3)

(你应该发布你的代码)但是,你的while循环一直持续到:

while(i<=height) 

while(i<=widht)

他们应该

while(i < height)while(i < width)

由于数组索引以0开头并且将继续Length - 1(还需要在退出内循环后重置j值)

答案 1 :(得分:2)

这是一个简单的逻辑错误。在退出while循环(j&lt; = width)后,您没有重置j的值。作为i的下一个值的结果,j的值从最后可能的索引值开始而不是从0开始。

每次在while循环后增加i的值时,将j重置为1.

答案 2 :(得分:1)

如果不是标准练习,从1到宽度(或高度)的循环是很好的,因为你用[i-1]或[j-1]索引。

您的屏幕截图未显示的是用户(您,我猜)为“输入网格宽度”输入的内容。每个或不同的数字是相同的吗?你有没有转换第一和第二个索引?