这段代码应该是在单个图块上添加一个字母,但是它当前写的方式是在几个图块上添加一个字母。我该如何解决这个问题?感谢。
public void add(char c) {
for (int row = 0; row < 4; row++){
for (int col = 0; col < 4; col++){
if (tiles[row][col] != null && tiles[row][col].getLetter() == null){
tiles[row][col].setLetter(letters.pop());
notifyObservers();
break;
}
}
}
}
答案 0 :(得分:0)
break;
仅退出内循环:for (int col = 0; col < 4; col++)
所以它仍然运行外循环:for (int row = 0; row < 4; row++)
因此再次重新进入内循环
尝试将break;
替换为return;
以完全退出add(char c)
函数。从而防止任何进一步的循环迭代
public void add(char c) {
for (int row = 0; row < 4; row++){
for (int col = 0; col < 4; col++){
if (tiles[row][col] != null && tiles[row][col].getLetter() == null){
tiles[row][col].setLetter(letters.pop());
notifyObservers();
return;
}
}
}
}