在 javascript 中需要适当的流量控制逻辑条件
need proper flow control logical condition in javascript
以下是我的真实情况table(需要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
}
但它在 *
条件下失败。有人可以建议我一个正确的逻辑方法来解决这个问题
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)
以下是我的真实情况table(需要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
}
但它在 *
条件下失败。有人可以建议我一个正确的逻辑方法来解决这个问题
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)