2017-06-17 3 views
-3

est en dessous de ma table de vérité (OP est souhaitée SORTIE)besoin état logique de contrôle de flux approprié en javascript

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

et voici mon -contrôle flux logique

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

Mais il échoue sur * état . peut someon me suggérer une bonne approche logique pour résoudre ce

+1

La seconde IF doit être 'Else IF'. – OmG

+0

pourquoi a-t-il été rejeté? –

+0

@OmG votre suggestion fonctionne également. –

Répondre

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

C'est, la sortie est vrai lorsque Y est vrai, ou lorsque X est vrai, mais pas 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)

+0

homme génial. Merci beaucoup. –