我在java中有一个for循环,如下所示,
for (int x = cell.getGridX() - 1; x >= 0 && compareCells(cell, getCell(x, cell.getGridY())); --x, ++matches[0]);
我需要为条件添加更多验证,因此我将其更改为
for (int x = cell.getGridX() - 1; x >= 0; --x) {
if (compareCells(cell, getCell(x, cell.getGridY()))) {
++matches[0];
}
}
但现在它并没有像预期的那样表现,我想不出原因,谢谢。
答案 0 :(得分:0)
在原始 for循环中,--x
和++matches[0]
仅在x >= 0
和compareCells(cell, getCell(x, cell.getGridY()))
结果为真时执行。
在新的 for循环中,每--x
执行x >= 0
,++matches[0]
仅在compareCells()
函数返回true时执行。为了与原始功能相匹配,它看起来更像以下内容:
for (int x = cell.getGridX() - 1; x >= 0; ;) {
if (compareCells(cell, getCell(x, cell.getGridY()))) {
--x;
++matches[0];
continue;
}
break;
}