Java抱怨无效的方法声明,需要返回类型

时间:2014-06-21 21:21:17

标签: java return

JOptionPane YES_NO_CANCEL_OPTION我做了以下方法:

public NewCard()
    {
        int ans = JOptionPane.showConfirmDialog(null, "Do you wish another card?", "7 in 1", JOptionPane.YES_NO_CANCEL_OPTION );
        if (ans == JOptionPane.YES_OPTION)
        {
            ans = 1;
        }

        if (ans == JOptionPane.NO_OPTION)
        {
            ans = 2;
        }

        if (resp == JOptionPane.CANCEL_OPTION)
        {
            ans = 3;
        }
        return ans;
    }

我想从主要内容中读到这个答案,但会出现语法错误。它说: Invalid method declaration; return type required但是我试图在所有if语句中写一个返回值并得到相同的错误。

2 个答案:

答案 0 :(得分:2)

您必须在函数声明中返回类型

您的函数返回int,所以:

public int NewCard() {

请在那里查看int

如果您不想退回任何内容,请使用void

答案 1 :(得分:0)

这应该是评论,但我需要格式化。

重用像ans这样的变量时需要小心。

以下常量的值为:

JOptionPane.YES_OPTION = 0;
JOptionPane.NO_OPTION = 1;
JOptionPane.CANCEL_OPTION = 2;

您可以轻松地将1添加到ans作为3 if语句的编码。

您编写代码的方式:

    if (ans == JOptionPane.YES_OPTION)
    {
        ans = 1;
    }

    if (ans == JOptionPane.NO_OPTION)
    {
        ans = 2;
    }

    if (resp == JOptionPane.CANCEL_OPTION)
    {
        ans = 3;
    }

如果ans = 0(YES选项),则在第一个if。

中将其设置为1

然后ans(你的ans,而不是原来的ans)= 1(NO选项)。

同样的事情发生在第3个if。

因此,如果您的用户单击YES按钮,则返回3.如果您的用户单击NO按钮,则返回3.相同的CANCEL按钮。你返回3。

要么使用两个不同的变量,要将第二个和第三个变更为if,否则只需将1添加到ans。