嗨,大家好临近任务结束,我总是陷入Java if/else
问题。我的小片段在这里:
// a taxi fare program where if pickup or drop off point is the airport
// and\or CBD the surcharge changes accordingly.
if(!pickup.equals("CBD") && !dropOff.equals("CBD")) {
Surcharge = 15.0;
} else if (!pickup.equals("airport") && !dropOff.equals("CBD")) {
Surcharge = 15.0;
} else if (!pickup.equals("airport") || !dropOff.equals("airport")) {
Surcharge = 10.0;
} else if (!pickup.equals("CBD") || !dropOff.equals("CBD")) {
Surcharge = 5.0;
} else {
Surcharge = 0.0;
}
不是错误,但似乎没有正确测试。例如,如果我将"airport"
作为取件,然后是dropOff
的随机位置,那么当它应该是10美元时,它仍会打印出15美元的附加费。但是,如果我将"CBD"
作为pickup
和机场放下,它会正确打印15美元。对不起,如果这不是很明显,但第一个计时器在这里。我在周末度过了一个类似的问题,这个问题非常明显。 if
似乎失败了,即使它显然应该是true
。
答案 0 :(得分:1)
你把机场作为皮卡意味着第一个条件
if(!pickup.equals("CBD") && (!dropOff.equals("CBD"))){
Surcharge = 15.0; }
有效。皮卡不是CBD,而是机场。
希望它有所帮助。
答案 1 :(得分:0)
用简单的英语,你的第一个if语句说:
如果这个人没有从中央商务区接到他们并且他们没有被送到CBD,那么就向他们收取15美元。
因此,如果接送或下车地点都不是CBD(即使其中一个是机场),那么结果将是15美元。
通过使用正面测试(例如“如果下降或拾取位置 CBD”)而不是负面测试(例如“如果下降或取货地点不是 CBD“)。
答案 2 :(得分:0)
以下是您的规则用英语说的:
您需要确定这是否是您想要的,或者您需要提供我们英语规则,以便我们检查您的逻辑。
首先,从机场到随机地点(CBD除外)的特定行程将产生15美元 - 请参阅上述规则1.