我正在編寫一個'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