为什么不出现消息框?

时间:2016-05-30 23:00:00

标签: java messagebox

我正在尝试在用户实现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;
        }
    }

}

我不确定为什么会说缺少退货声明。

2 个答案:

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

这样,函数将始终返回一个布尔值。