循环向图块添加字母
Loop adding letter to a tile
这段代码应该是向单个图块添加一个字母,但它目前的编写方式是向多个图块添加一个字母。我该如何解决?谢谢
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;
}
}
}
}
break;
只退出内循环:for (int col = 0; col < 4; col++)
所以它仍然运行外循环:for (int row = 0; row < 4; row++)
,因此再次进入内循环
尝试用 return;
替换 break;
以完全退出 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;
}
}
}
}
这段代码应该是向单个图块添加一个字母,但它目前的编写方式是向多个图块添加一个字母。我该如何解决?谢谢
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;
}
}
}
}
break;
只退出内循环:for (int col = 0; col < 4; col++)
所以它仍然运行外循环:for (int row = 0; row < 4; row++)
,因此再次进入内循环
尝试用 return;
替换 break;
以完全退出 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;
}
}
}
}