我正在编写一个'Sudoku'程序,并且我需要编写一个方法来检查数字,用户想要插入某个单元格是否已包含在行,列或地区。我的代码看起来像这样(我只检查数量排在这一点上,setNumber返回一个布尔值,表示号码是否可以插入或不):Java 2dim迭代表
public boolean setNumber(int row, int column, int number) {
if (this.isEmpty(row, column)) {
if (!this.rowContains(row, number)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
private boolean rowContains(int row, int number) {
for (int i=0; i < this.cells[row].length; i++) {
if (this.cells[row][i].getNumber() == number) {
return true;
}
}
return false;
}
现在,同样的数量可插入多次,所以显然rowContains总是返回false,但为什么?
当rowContains返回false时,您将返回true,是否有意?看起来这可能是那里的问题? – Corazu 2009-11-03 13:58:03
@Corazu:对我来说这听起来像是正确的行为 - 如果行*不包含数字,则插入成功(true)。 – 2009-11-03 14:08:46
是的,在这方面是正确的。 – rize 2009-11-03 17:09:24