我的符号迷失在迷宫中[关闭]
Posted
技术标签:
【中文标题】我的符号迷失在迷宫中[关闭]【英文标题】:My Symbol is Lost in the Maze [closed] 【发布时间】:2017-04-23 04:34:07 【问题描述】:我正在创建一个迷宫游戏,作为大学评估的一部分。我打算遍历迷宫板,直到找到角色'&'
,然后返回玩家的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;
为什么找不到符号?
【问题讨论】:
对不起,这不是 *** 的工作方式。 “这是我的代码,它不起作用,谁能帮我弄清楚” 形式的问题被认为是题外话。请访问help center并阅读How to Ask了解更多信息,尤其是阅读Why is “Can someone help me?” not an actual question? 【参考方案1】: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;
【讨论】:
你知道这段代码和原来的代码不同吧?原始代码中的break
只破坏了内部循环(尽管这实际上没有意义),如果i
仍然在范围内,如预期的那样,return 语句将返回numberOfRows
,而不是-1
。我同意您的代码更有意义,但是您应该在答案中提及对逻辑的这些更改。不过,+1。以上是关于我的符号迷失在迷宫中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章