难以设置变量

时间:2014-01-17 21:54:48

标签: java class variables methods

我应该为我的编程类编写一个代码,就好像你在网上订购一样。我已经到达我有程序的部分拿入项目编号并返回价格(没有运费),但每次我运行它,它似乎已经自动设置我用来代表价格的变量13.应设为零。 这是我的代码的一部分,它给了我一些问题:

class Order {
    public Order() {}

    public double price(String odd, double quant, int g) {
        double set;
        if (g == 1) {
            if (odd.equals("AT413")) {
                set = (50.03 * quant) + set;
            } else if (odd.equals("AT414")) {
                set = (60.04 * quant) + set;
            } else if (odd.equals("AT415")) {
                set = (147.01 * quant) + set;
            } else if (odd.equals("AT416")) {
                set = (38.00 * quant) + set;
            } else if (odd.equals("AT417")); {
                set = (13.00 * quant) + set;
            }
        } else if (g == 2) {
            if (odd.equals("AT513")) {
                set = (50.03 * quant) + set;
            } else if (odd.equals("AT514")) {
                set = (50.00 * quant) + set;
            } else if (odd.equals("AT515")) {
                set = (130.02 * quant) + set;
            } else if (odd.equals("AT516")) {
                set = (25.03 * quant) + set;
            } else if (odd.equals("AT517")); {
                set = (13.00 * quant) + set;
            }
        } else if (g == 3) {
            if (odd.equals("AT613")) {
                set = (50.03 * quant) + set;
            } else if (odd.equals("AT614")) {
                set = (86.00 * quant) + set;
            } else if (odd.equals("AT615")) {
                set = (130.00 * quant) + set;
            } else if (odd.equals("AT616")) {
                set = (40.04 * quant) + set;
            } else if (odd.equals("AT617")); {
                set = (13.00 * quant) + set;
            }
        }
        return set;
    }
}

我尝试了一些不同的东西。我从主代码中获取变量集,但是这不起作用,因为即使我向该类发送0,它仍然设置...设置(抱歉该变量名称)在13。我试图摆脱最后的+设置,但这没有用,因为它只是打印出13作为订单成本,即使我放入了应该调用价格50.03的字符串。我改变了匹配价格,看看会发生什么,我意识到它正在从最后一行代码中使用AT617来设置变量,但我不知道为什么会这样做或如何解决它。非常感谢帮助。

2 个答案:

答案 0 :(得分:3)

如果您已经格式化了代码,那么您可以看到

public double price(String odd, double quant, int g) {
    double set = 0;
    if (g == 1) {
        if (odd.equals("AT413"))
            set = 50.03 * quant + set;
        else if (odd.equals("AT414"))
            set = 60.04 * quant + set;
        else if (odd.equals("AT415"))
            set = 147.01 * quant + set;
        else if (odd.equals("AT416"))
            set = 38.00 * quant + set;
        else if (odd.equals("AT417"))
            ;
        {
            set = 13.00 * quant + set;
        }
    } else if (g == 2) {
        if (odd.equals("AT513"))
            set = 50.03 * quant + set;
        else if (odd.equals("AT514"))
            set = 50.00 * quant + set;
        else if (odd.equals("AT515"))
            set = 130.02 * quant + set;
        else if (odd.equals("AT516"))
            set = 25.03 * quant + set;
        else if (odd.equals("AT517"))
            ;
        {
            set = 13.00 * quant + set;
        }
    } else if (g == 3) {
        if (odd.equals("AT613"))
            set = 50.03 * quant + set;
        else if (odd.equals("AT614"))
            set = 86.00 * quant + set;
        else if (odd.equals("AT615"))
            set = 130.00 * quant + set;
        else if (odd.equals("AT616"))
            set = 40.04 * quant + set;
        else if (odd.equals("AT617"))
            ;
        {
            set = 13.00 * quant + set;
        }
    }
    return set;
}

有非常奇怪的外观,如

        else if (odd.equals("AT417"))
            ;
        {
            set = 13.00 * quant + set;
        }

删除该分号或if (odd.equals("AT417"))案例执行一个空语句,任何情况下不必要地{}括起set = 13.00 * quant + set;这会弄乱你的所有结果。

答案 1 :(得分:1)

我真的建议格式化代码。

else if(odd.equals("AT517"));

有一个;

也是如此

else if(odd.equals("AT617"));