我想知道java中是否存在一种方法,当迭代数组并在某些索引中放置值时,跳过越界异常并转到下一项。
例如,
for (int x = 0; x <= array.length; x++)
{
for (int y = 0; y <= array[0].length; x++)
{
// code that determines where to put things and in what indices
//if this index is out of the array bounds, I want to forget about it and keep going through the loops
}
}
}
答案 0 :(得分:3)
我想知道java中是否有一种方法,当迭代时 数组并在某些索引中放置值,以跳过越界 例外,只需转到下一个项目
如果 index 超出某个索引的界限,那么下一个索引肯定也会超出范围。让您的代码正常工作。
for (int x = 0; x <array.length; x++)
{
for (int y = 0; y <array[x].length; y++)
{
数组索引基于零。即
如果数组的长度是n,那么数组的最后一个索引就是ne n-1个
答案 1 :(得分:0)
右。首先,嵌套循环的更新部分应该是y ++。不是x ++。该代码只会无限循环。
其次,您可以将循环包装在try-catch中,这将捕获异常,但不建议忽略异常。为什么不设计你的代码,以免引发异常?
答案 2 :(得分:0)
Arrays
索引从 0 开始。
因此,如果您的Array
长度 100 ,则索引为:
0 1 2 3 4 5 ..... 99 (total size of 100 of course)
^ ^ ^ ^ ^ ^ ^
| | | | | | |
first last
当您执行array.length
时,实际上 100 ,但您需要进行迭代直到 99 。
因此,请将<=
替换为<
答案 3 :(得分:0)
问题意味着您在数组上使用了无效的索引。这可能是负数,因为所有数组都从0开始。如果数组有 N项,您将尝试获取索引N或更高你也会得到这个例外。只有可用的索引来自 0到N - 1 ,其中0指向第一个项目,N - 1指向最后一个项目。因此,当您的索引超出数据限制范围时,显然索引肯定会超出边界。因此,您可以迭代索引,直到它超出范围并停止迭代,以避免该异常。