组合嵌套条件逻辑运算符

时间:2021-04-07 19:31:49

标签: nested conditional-statements logical-operators

我想知道是否有任何人可以帮助我找到资源,教我更多关于逻辑运算符的知识,并为我回答一个问题。我想(为了满足我的好奇心)将这些嵌套的条件检查与逻辑运算符合并为一个语句。

if(obj1 != null && obj2 != null) {
    if(obj1 != undefined && obj2 != undefined) {
        //do something here
    }
}

我试过了

if((obj1 != null || obj1 != undefined) && (obj2 != null || obj2 != undefined)) {
    //do something here
}

但我认为这行不通,因为如果 obj1 或 obj2 等于 null 或 undefined,那么 or 语句将评估为真。所以如果obj1为null或undefined AND obj2为null或undefined,条件中的上述代码将被执行,这绝对不是我想要的。

那么如何将嵌套条件合并为一行?

谢谢! :)

1 个答案:

答案 0 :(得分:1)

你可能想多了。代码如

if (a) {
    if (b) {
        // stuff
    }
}

仅当 stuffa 都为真时才执行 b,所以它等价于

if (a && b) {
    // stuff
}

因此,您所要做的就是获取现有条件并将它们与 && 联系起来。你可以写

if((obj1 != null && obj2 != null) && (obj1 != undefined && obj2 != undefined)) {
    //do something here
}