如何编写一个告诉java数组索引无效的条件
(这是一个填充了对象的2d数组)因此标记为“//Out-of-Grid”的位置就是我不知道如何告诉java它要查找的索引不在网格中的位置,并且继续前进 对于我试图完成的任务,一个基本的概览是从如何编写一个告诉java数组索引无效的条件,java,multidimensional-array,conways-game-of-life,Java,Multidimensional Array,Conways Game Of Life,(这是一个填充了对象的2d数组)因此标记为“//Out-of-Grid”的位置就是我不知道如何告诉java它要查找的索引不在网格中的位置,并且继续前进 对于我试图完成的任务,一个基本的概览是从[0][0]开始检查每个单元格,并检查其所有相邻单元格,因为第一次检查其相邻单元格是[0][1],[1][0],以及[1][1]。然后,如果索引中对象的年龄为0,请执行某些操作 for (int i = -1; i <= 1; i++) { for (int j = -1; j <= 1
[0][0]
开始检查每个单元格,并检查其所有相邻单元格,因为第一次检查其相邻单元格是[0][1]
,[1][0]
,以及[1][1]
。然后,如果索引中对象的年龄为0,请执行某些操作
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
int neighbor_x = x + i;
int neighbor_y = y + j;
if (neighbor_x < 0 || neighbor_x >= board.length) {
// Out of Grid
}
if (neighbor_y < 0 || neighbor_y >= board[neighbor_x].length) {
// Out of Grid
}
if (board[neighbor_x][neighbor_y].age == 0) {
nCount++;
if (board[x + i][y + j].getPreviousValue() == 0)
hCount++;
}
}
}
for(int i=-1;i=board[neighbor_x].length){
//格格不入
}
如果(电路板[neighbor_x][neighbor_y]。年龄==0){
nCount++;
如果(板[x+i][y+j].getPreviousValue()==0)
hCount++;
}
}
}
除非您想执行某些操作,否则您只需将它们省略即可
当运行第二条语句时,如果邻居\u x<0
和邻居\u y>=0
,则会发生越界异常,第一个条件得到验证,第二个条件抛出异常。您可以简单地使用唯一重要的条件
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
int neighbor_x = x + i;
int neighbor_y = y + j;
if ((neighbor_x >=0 && neighbor_x < board.length) &&
(neighbor_y >= 0 && neighbor_y < board[neighbor_x].length) &&
board[neighbor_x][neighbor_y].age == 0 ) {
nCount++;
if (board[x + i][y + j].getPreviousValue() == 0)
hCount++;
}
}
}
for(int i=-1;i=0&&neighbor\u y
如果这会引发异常,那么只需将条件comme套件分开即可
if ( neighbor_x >=0 && neighbor_x < board.length )
if(neighbor_y >= 0 && neighbor_y < board[neighbor_x].length)
if(board[neighbor_x][neighbor_y].age == 0 )
if(neighbor_x>=0&&neighbor_x=0&&neighbor_y
hmm似乎没有工作dd,什么不起作用?我还应该补充一点,当I==0和j==0时,你没有跳过,一个单元格不是它自己的邻居。是的,我得到了超出范围的部分,我需要帮助。你能更新你的代码列表吗?对于某些邻居检查,我有几乎完全相同的代码,它可以与continue一起工作。如果索引不在网格中,我想将其忽略,只计算(nCount)在网格中的索引,已尝试此操作,但仍会出现越界异常-1。@user2760010已修复此问题