我需要使用if语句的条件逻辑帮助如下:
目前我有这个条件:
if (A.level1 == 0 and B.level1 == 0) {
code here
} else if (A.level2 == 0 and B.level2 == 0) {
code here
} else if (A.level3 != null and B.level3 != null) {
code here
}
问题是此代码不处理Variables A and B can be null
部分。代码应该像这样处理那个部分:
我遇到了如何在我的条件下实施Variables A and B can be null
部分的任何建议?
答案 0 :(得分:2)
在您的条件中添加A
和B
isNull检查:
if (A == null && B == null) {
return;
} else if ((A == null || A.level1 == 0) && (B == null || B.level1 == 0)) {
// code here
} else if ((A == null || A.level2 == 0) && (B == null || B.level2 == 0)) {
// code here
} else if ((A == null || A.level3 != null) && (B == null || B.level3 != null)) {
// code here
}
<强>解释强>,
以此else if ((A == null || A.level1 == 0) && (B == null || B.level1 == 0))
语句中的A为例:
将A == null ||
放入(A == null || A.level1 == 0) && (B == null || B.level1 == 0)
,如果A为空,则此A.level1 == 0
检查将被忽略,因此检查将与else if (B == null || B.level1 == 0)
等效。
由于第一个if
已经检查A == null && B == null
,因此下面的else if
不会使A和B都为空。因此,现在else if ((A == null || A.level1 == 0) && (B == null || B.level1 == 0))
将等同于else if (B.level1 == 0)
。
<强> P.S。在这里,我们利用||
特征,即如果第一个条件得到满足,第二个条件将被忽略。
答案 1 :(得分:0)
似乎这就是你要找的东西:
// Both A and B are null
if(A == null && B == null){
// do something
}
// Only A is null
else if(A == null){
if(B.level1 == 0){
// do something
}
else if(B.level2 == 0){
// do something
}
else if(B.level3 != null){
// do something
}
}
// Only B is null
else if(B == null){
if(A.level1 == 0){
// do something
}
else if(A.level2 == 0){
// do something
}
else if(A.level3 != null){
// do something
}
}
// Neither A or B are null
else{
if(A.level1 == 0 && B.level1 == 0){
// do something
}
else if(A.level2 == 0 && B.level1 == 0){
// do something
}
else if(A.level3 != null && B.level3 != null){
// do something
}
}
答案 2 :(得分:0)
我建议先检查A
或B
的假值,然后检查属性。
var A = null,
B = null;
if (!A && !B) {
console.log('A or B is null');
} else if (A.level1 === 0 && B.level1 === 0) {
console.log(1);
} else if (A.level2 === 0 && B.level2 === 0) {
console.log(2);
} else if (A.level3 != null && B.level3 != null) {
console.log(3);
}
答案 3 :(得分:0)
分别处理A和B,
如果(!A){
if(A.level1 === 0 && A.level2 ===0){
}
else if(A.level1 === 0){
}
else if(A.level1 > 0){
}
if(A.level2 === 0){
}
else if(A.level2 > 0){
}
if(A.level3 === null){
}
else if (typeof (A.level3) === "number"){
}
}
这里的B相同......