我应该为我的编程类编写一个代码,就好像你在网上订购一样。我已经到达我有程序的部分拿入项目编号并返回价格(没有运费),但每次我运行它,它似乎已经自动设置我用来代表价格的变量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来设置变量,但我不知道为什么会这样做或如何解决它。非常感谢帮助。
答案 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"));