IF语句使用字符串

时间:2012-09-25 03:47:11

标签: java string if-statement

嗨,大家好临近任务结束,我总是陷入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

3 个答案:

答案 0 :(得分:1)

你把机场作为皮卡意味着第一个条件

if(!pickup.equals("CBD") && (!dropOff.equals("CBD"))){ Surcharge = 15.0; }

有效。皮卡不是CBD,而是机场。

希望它有所帮助。

答案 1 :(得分:0)

用简单的英语,你的第一个if语句说:

  

如果这个人没有从中央商务区接到他们并且他们没有被送到CBD,那么就向他们收取15美元。

因此,如果接送或下车地点都不是CBD(即使其中一个是机场),那么结果将是15美元。

通过使用正面测试(例如“如果下降或拾取位置 CBD”)而不是负面测试(例如“如果下降或取货地点不是 CBD“)。

答案 2 :(得分:0)

以下是您的规则用英语说的:

  1. 任何完全在中央商务区以外的旅行 - > $ 15
  2. 否则,任何不离开机场而未到达CBD的行程 - > $ 15
  3. 否则,任何开始或结束的旅程都不是机场 - > 10 $
  4. 否则,任何开始或结束的旅程都不是CBD - > $ 5'/ LI>
  5. 否则 - > $ 0
  6. 您需要确定这是否是您想要的,或者您需要提供我们英语规则,以便我们检查您的逻辑。

    首先,从机场到随机地点(CBD除外)的特定行程将产生15美元 - 请参阅上述规则1.