在javascript中需要适当的流量控制逻辑条件

时间:2017-06-17 04:01:28

标签: javascript boolean-logic flow-control

下面是我的真值表(OP是所需的输出)

X   |   Y   |   Z   | OP
--------------------------
F   |   F   |   F   | F 
F   |   F   |   T   | F
F   |   T   |   F   | T
F   |   T   |   T   | T
T   |   F   |   F   | T
T   |   F   |   T   | F *
T   |   T   |   F   | T
T   |   T   |   T   | T
--------------------------

这是我的流量控制逻辑

IF(X === TRUE || Y === TRUE) {
    IF(Z === TRUE && Y === FALSE) {
        OP = FALSE
    } ELSE {
        OP = TRUE
    }
}
IF(X === FALSE || Y === FALSE) {
    OP = FALSE
}

但它在*条件下失败了。我能不能建议一个合适的逻辑方法来解决这个问题

1 个答案:

答案 0 :(得分:1)

OP = Y || (X && !Z)

也就是说,只要Y为真,或者X为真但不是Z,则输出为真。

function test(x, y, z) {
  var op = y || (x && !z)
  console.log(x, y, z, op)
}

test(false, false, false)
test(false, false, true)
test(false, true, false)
test(false, true, true)
test(true, false, false)
test(true, false, true)
test(true, true, false)
test(true, true, true)