•
((foo && !bar) || (bar && !foo)) && foo;
((false&& !false)||(false&&!false))&&false
(false
||
false)
&& false is
false
false
false
((false&& !true)||(true && !false))&& false
(false
||
true)
&& false is
false
true
false
((true&& !false)||(false && !true)) && true
(true
||
false)
&&
true is
true
false
true
((true && !true) || (true && !true)) && true
(false
||
false) && true is
false
true
true
((foo && !bar) || (bar && !foo)) && foo
bar
foo
The expression is true only when foo is true and bar is false
Mistake on original homework 2
I wrote (
(foo && !bar) || (bar && !foo)) && foo instead of (foo && !bar) || (bar && !foo) && foo