有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

这是为了一个JOptionPane{}我用了以下方法:

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) 个答案

  1. # 1 楼答案

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

    函数返回一个int,因此:

    public int NewCard() {
    

    请看那里的int

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

  2. # 2 楼答案

    这真的应该是一个评论,但我需要格式

    在重用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(是选项),则在第一个If中将其设置为1

    然后ans(您的ans,而不是原始ans)=1(无选项)

    同样的事情发生在第三个if中

    因此,如果用户单击YES按钮,则返回3。如果用户单击“否”按钮,则返回3。取消按钮也一样。你返回一个3

    或者使用两个不同的变量,将第二个和第三个if更改为else if,或者只向ans添加1