大括号缺少退货声明?

时间:2012-07-10 23:42:35

标签: java swing if-statement

我正在编写一个程序,其中我有一系列方法都设置基本相同。如果给出i = 1,他们将返回产品价格乘以订购数量。否则,他们只返回订购的数量。然而,每当我尝试编译它时,编译器都会说括号缺少返回语句。我已经多次浏览过代码了,我没有看到语法中有任何明显的错误。有没有猜到为什么会发生这种情况?

感谢您的帮助。

相关来源:

private class ButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent e)
        {
            if (e.getSource() == switchCard)
            {
                cl.show(infoPanel, (String)candyList.getSelectedValue());
            }

        if (e.getSource() == checkoutButton)
        {
            double acidPops = acidPopsTotal(1);
            double bertieBotts = bertieBottsTotal(1);
            double bloodPops = bloodPopsTotal(1);
            double cauldronCakes = cauldronCakesTotal(1);
            double charmChoc = charmChocTotal(1);
            double chocoballs = chocoballsTotal(1);
            double chocCauldrons = chocCauldronsTotal(1);
            double chocFrogs = chocFrogsTotal(1);
            double chocWands = chocWandsTotal(1);
            double roachClusters = roachClustersTotal(1);
            double crystalPineapple = crystalPineappleTotal(1);
            double droobleGum = droobleGumTotal(1);
            double explodeBonbons = explodeBonbonsTotal(1);
            double fizzWhiz = fizzWhizTotal(1);
            double iceMice = iceMiceTotal(1);
            double jellySlugs = jellySlugsTotal(1);
            double liquorWands = liquorWandsTotal(1);
            double pepImpts = pepImpsTotal(1);
            double pinkIce = pinkIceTotal(1);
            double shockChoc = shockChocTotal(1);
            double spindleSpiders = spindleSpidersTotal(1);
            double quills = quillsTotal(1);
            double wizochoc = wizochocTotal(1);
        }
    }

    double acidPopsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (5.95* (Integer.parseInt(acidPopsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(acidPopsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double bertieBottsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (16.95 * (Integer.parseInt(bertieBottsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(bertieBottsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double bloodPopsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (5.95 * (Integer.parseInt(bloodPopsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(bloodPopsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double cauldronCakesTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (14.95 * (Integer.parseInt(cauldronCakesTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(cauldronCakesTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double charmChocTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (5.95 * (Integer.parseInt(charmChocTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(charmChocTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double chocoballsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (9.95 * (Integer.parseInt(chocoballsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(chocoballsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double chocCauldronsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (14.95 * (Integer.parseInt(chocCauldronsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(chocCauldronsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double chocFrogsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (14.95 * (Integer.parseInt(chocFrogsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(chocFrogsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double chocWandsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (9.95 * (Integer.parseInt(chocWandsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(chocWandsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double roachClustersTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (5.95 * (Integer.parseInt(roachClustersTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(roachClustersTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double crystalPineappleTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (9.95 * (Integer.parseInt(crystalPineappleTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(crystalPineappleTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double droobleGumTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (2.95 * (Integer.parseInt(droobleGumTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(droobleGumTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double explodeBonbonsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (9.95 * (Integer.parseInt(explodeBonbonsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(explodeBonbonsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double fizzWhizTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (9.95 * (Integer.parseInt(fizzWhizTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(fizzWhizTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double iceMiceTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (5.95 * (Integer.parseInt(iceMiceTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(iceMiceTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double jellySlugsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (2.95 * (Integer.parseInt(jellySlugsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(jellySlugsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double liquorWandsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (9.95 * (Integer.parseInt(liquorWandsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(liquorWandsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double pepImpsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (4.95 * (Integer.parseInt(pepImpsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(pepImpsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double pinkIceTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (4.95 * (Integer.parseInt(pinkCocoIceTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(pinkCocoIceTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double shockChocTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (4.95 * (Integer.parseInt(shockChocTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(shockChocTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double spindleSpidersTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (4.95 * (Integer.parseInt(spindleSpidersTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(spindleSpidersTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double quillsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (1.95 * (Integer.parseInt(sugarQuillsTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(sugarQuillsTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }

    double wizochocTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (5.95 * (Integer.parseInt(wizochocTF.getText())));
            }
            catch (NumberFormatException e) {}
        }
        else
        {
            try
            {
                return Integer.parseInt(wizochocTF.getText());
            }
            catch (NumberFormatException e) {}
        }
    }
}

错误:

C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:490: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:510: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:530: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:550: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:570: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:590: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:610: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:630: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:650: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:670: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:690: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:710: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:730: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:750: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:770: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:790: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:810: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:830: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:850: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:870: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:890: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:910: error: missing return statement
        }
        ^
C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java:930: error: missing return statement
        }
        ^
Note: C:\Users\Sam\Desktop\Java\4H 2012\ClientApp.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
23 errors

3 个答案:

答案 0 :(得分:6)

由于你的try-catch块没有保证回报。

您可能希望返回0或-1的标记来显示此内容。

可以使这一点更清晰的一个例子:

double acidPopsTotal(int i) {
    if (i == 1) {
        try {
            return (5.95* (Integer.parseInt(acidPopsTF.getText())));
        } catch (NumberFormatException e) {
            //Missing return - compile error
        }
    } else {
        try {
            return Integer.parseInt(acidPopsTF.getText());
        } catch (NumberFormatException e) {
            //Missing return - compile error
        }
    }
}

答案 1 :(得分:1)

在Java中,如果通过非void 函数存在至少一条不包含return或throw的路径,那么这是一个编译时错误。因为您捕获抛出的异常并且不对其执行任何操作,所以在该路径中不会返回任何内容。因此,错误。

除此之外:你可能想要考虑一个程序结构,你抛出异常而不是吃它。 (然后,这可能只是示例代码。)

答案 2 :(得分:1)

我相信TheZ说的是正确的,如果发现错误,你有可能不返回任何东西。尝试类似......

 double chocFrogsTotal(int i)
    {
        if (i == 1)
        {
            try
            {
                return (14.95 * (Integer.parseInt(chocFrogsTF.getText())));
            }
            catch (NumberFormatException e) {return -1.;}
        }
        else
        {
            try
            {
                return Integer.parseInt(chocFrogsTF.getText());
            }
            catch (NumberFormatException e) {return -1.;}
        }
    }

然后每当你返回一个小于1的值时,你就知道你有一个糟糕的解析。