我正在尝试在用户实现tic tac toe时显示一个消息框。目前有一个错误突出显示方法的结束括号,并表示缺少return语句。这是确定是否存在胜利并显示消息框的类。
public boolean checkRows()
{
for (int i = 0; i < 3; i++)
{
if (checkRowCol(board[i][0], board[i][1], board[i][2]) == true)
{
JOptionPane.showMessageDialog(null, "You Win", "Title", JOptionPane.PLAIN_MESSAGE);
}
else if (checkRowCol(board[i][0], board[i][1], board[i][2]) == false)
{
return false;
}
}
}
我不确定为什么会说缺少退货声明。
答案 0 :(得分:0)
您的方法请求布尔值作为结果。 如果第一个语句为true,则执行ShowMessageDialogue方法,但在此之后,该函数仍在等待您返回一个布尔值。 我不知道你的代码是如何工作的,但似乎这样可行:
public void checkRows()
{
for (int i = 0; i < 3; i++)
{
if (checkRowCol(board[i][0], board[i][1], board[i][2]) == true)
JOptionPane.showMessageDialog(null, "You Win", "Title",
JOptionPane.PLAIN_MESSAGE);
}
}
每次用户执行移动时,让你的tictactoe游戏调用此方法:如果他赢了,checkRows方法将显示&#34;你赢了&#34;消息,否则它将什么都不做,用户可以进行下一步动作
答案 1 :(得分:0)
java编译器抱怨,因为它不认为所有代码路径都返回一个布尔值。 (即使它在这种情况下这样做)
您可以在关闭方法之前添加return false;
来解决此问题。更好的解决方案可能是使用
else return false;
而不是
else if (checkRowCol(board[i][0], board[i][1], board[i][2]) == false) { return false; }
这样,函数将始终返回一个布尔值。