循环添加字母到瓷砖

时间:2015-11-21 05:07:06

标签: arrays if-statement for-loop multidimensional-array nested-loops

这段代码应该是在单个图块上添加一个字母,但是它当前写的方式是在几个图块上添加一个字母。我该如何解决这个问题?感谢。

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;
                }
            }
            }
        }

1 个答案:

答案 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;
            }
        }
    }
}