我想验证以下条件,但我的if条件有问题,并返回无效结果。 我的验证条件如下:
如果
请查看以下代码,我得到了错误的结果,不确定我在哪里出错了:
productId
和productAltID
可以有值,也可以都是null
如果productId
和productAltID
都为null,则productSellDate
和productReturnDate
必须有值。如果
productSellDate
和productReturnDate
都为null
,则productId
或productAltID
应该有值。请查看以下代码,我得到了错误的结果,不确定我在哪里出错了:
public class validate {
public static void main(String[] args) {
String productId = null;
String productAltID = "adfafadsf";
Date productSellDate = null;
Date productReturnDate = new Date();
if (productId != null || productAltID != null || productSellDate !=null && productReturnDate != null) {
System.out.println("validation success");
} else {
System.out.println("validation failed");
}
}
}
// 有效场景
Combination 1: Valid Scenario
String productId = null;
String productAltID = null;
Date productSellDate = new Date();
Date productReturnDate = new Date();
Combination 2: Valid Scenario
String productId = null;
String productAltID = "3432fefsf";
Date productSellDate = new Date();
Date productReturnDate = new Date();
Combination 3: Valid Scenario
String productId = "sdf3234234324";
String productAltID = "3432fefsf";
Date productSellDate = null;
Date productReturnDate = null;
Combination 4: Valid Scenario
String productId = null;
String productAltID = "3432fefsf";
Date productSellDate = null;
Date productReturnDate = null;
&&
在||
之前被计算。尝试在 if 条件语句中添加括号。或者更好的方法是,根据问题描述创建各种条件的方法,这样可以写成:if (isSomeCondition(...) || isSomeOtherCondition(...) || isYetSomeOtherCondition(...))
。 - Andrew Selse if
组件,或者尝试使用类似于if ((productId != null || productAltID != null) || (productSellDate != null && productReturnDate != null)) {
的东西。 - MadProgrammer