【问题标题】:what's causing this loop to go out of bounds?是什么导致这个循环超出范围?
【发布时间】:2013-02-11 12:15:39
【问题描述】:

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

【问题讨论】:

  • 下次直接在这里粘贴代码即可;比截图好很多。
  • 哈哈我想通了:)

标签: java loops while-loop indexoutofboundsexception


【解决方案1】:

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

while(i<=height) 

和

while(i<=widht)

他们应该是

while(i &lt; height) 和 while(i &lt; width)

由于数组索引以0开头,并且会一直到Length - 1,(另外你需要在退出内循环后重置j的值)

【讨论】:

  • @Downvoter,如果您能指出错误,我将不胜感激
  • @howlowworld,是的,你必须这样做,但是,你得到的例外是由于这种情况
【解决方案2】:

这是一个简单的逻辑错误。退出 while 循环(j

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

【讨论】:

  • 我不知道为什么我看不到那个。我猜盯着屏幕看太久了。谢谢,这绝对是主要问题。
【解决方案3】:

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

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

【讨论】:

  • 我输入了 4 的宽度和 3 的高度
猜你喜欢
  • 2021-12-13
  • 2012-02-16
  • 2018-03-06
  • 1970-01-01
  • 2022-08-10
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
相关资源
最近更新 更多