-3

Below is my truth table ( OP is desired OUTPUT )

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
--------------------------

and here is my flow -control logic

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

But it fails on * condition. can someon suggest me a proper logical approach to solve this

Jonas
  • 121,568
  • 97
  • 310
  • 388
xkeshav
  • 53,360
  • 44
  • 177
  • 245

1 Answers1

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

That is, the output is true whenever Y is true, or when X is true but not 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)
nnnnnn
  • 147,572
  • 30
  • 200
  • 241