-1

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

代码截图

4

3 回答 3

3

(您应该已经发布了代码)但是,您的 while 循环将持续到:

while(i<=height) 

while(i<=widht)

他们应该是

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

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

于 2013-02-26T06:06:56.047 回答
2

这是一个简单的逻辑错误。退出 while 循环(j <= 宽度)后,您不会重置 j 的值。因此,对于 i 的下一个值,j 的值从最后一个可能的索引值开始,而不是从 0 开始。

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

于 2013-02-26T06:16:03.273 回答
1

如果不是标准做法,将 1 循环到宽度(或高度)很好,因为您使用 [i-1] 或 [j-1] 进行索引。

您的屏幕截图未显示的是用户(我假设是您)为“输入网格宽度”输入的内容。每个人的号码是一样的还是不同的?你有没有调换第一个和第二个索引?

于 2013-02-26T06:13:57.917 回答