我在相当长一段时间内没有使用过java而且我对此感到有些沮丧...它总是返回-99但我不知道逻辑错在哪里。
public static void main(String[] args){
System.out.println(shippingCost('P',10));
}
public static int shippingCost(char packageType, int weight)
{
String e1 = "Legal Values: Package Type must be P or R";
String e2 = "Legal Values: Weight < 0";
int cost = 0;
if((packageType != 'P')||(packageType != 'R'))
{
//throw new Exception(e1);
return -99;
} else {
return -1;
}
答案 0 :(得分:11)
你的if()应该使用AND
。既然它现在是OR
,那么你的packageType既不是P也不是R总是如此。
答案 1 :(得分:3)
你的错了。 ((不是P)或(不是R))将永远是真的,因为其中一个不会永远是真的。
答案 2 :(得分:2)
您的if语句正在检查packageType是否不等于'P'或者它不等于'R'。这将始终解析为true,这意味着您的函数将始终返回-99。
答案 3 :(得分:2)
我认为您打算使用AND
代替OR
。尝试
if((packageType != 'P') && (packageType != 'R'))
^^
答案 4 :(得分:1)
因为包裹类型不是'R'!
答案 5 :(得分:1)
我认为您的问题出在if语句中。由于你的条件是“不是P或不是R”,那么如果你将P传递给方法,它将评估为真。这是因为它不是P但它也不是R,因此它的评估结果为真。
桑尼