我的符号迷失在迷宫中

My Symbol is Lost in the Maze

我正在制作一个迷宫游戏作为大学评估的一部分。我打算遍历迷宫板,直到找到角色 '&' 然后 return 玩家的 y 坐标(我已经完成了相同的方法来获取 x 位置并获得相同的错误)

我得到的错误:

MazeGame.java:133: error: cannot find symbol  
return i;  
^  
symbol:   variable i  
location: class MazeGame  
1 error  

还有,我的代码,

public static int getCurrentYPosition() {
    for (int i = 0; i < numberOfRows; i++) {
        for (int n = 0; n < board[i].length; n++) {
            if (board[i][n] == '&') {
                break;
            }
        }
    }
    return i;
}

为什么找不到符号?

i 不在 循环之后的范围内。 return 当你找到它时,并处理没有用标记找到该字符的情况(比如 -1)。并且,如所写,break 仅适用于 inner 循环 (因此,如果我们通过增加 i 可见例如,它的范围)然后 return numberOfRows 随着 i 递增直到那时。所以,我认为你真的想要

public static int getCurrentYPosition() {
    for (int i = 0; i < numberOfRows; i++) {
        for (int n = 0; n < board[i].length; n++) {
            if (board[i][n] == '&') {
                return i;
            }
        }
    }
    return -1;
}

请注意,您也可以使用 for-each 循环编写它,例如

for (int i = 0; i < numberOfRows; i++) {
    for (char ch : board[i]) {
        if (ch == '&') {
            return i;
        }
    }
}
return -1;