if-then
statements he wants to construct may need to consist of more than one condition — they may need compound (multiple) conditions to execute the consequence. The main logic operations your coder uses to create compound conditional are and
, not
, and or
. Here is what each one means:
and
means that every condition is true.not
changes the Boolean value of a statement: true becomes false, and false becomes true.o
r means that at least one of the conditions is true.
In pseudocode
Here is the general pseudocode format of a compound conditional:if homework is done and it's after 9pm then go to bed
The if
portion of a compound conditional can only return a Boolean value: true or false.
Here are some examples of compound conditionals in pseudocode:
if (weight >= 40 lbs and height >= 38 in) then (use booster seat)
if (not fuse tripped) then (electrical current flows)
if (SAT > 1500 or ACT > 33) then (earn scholarship)
Compound conditionals in Scratch
Your coder may want to construct a Frogger-style video game, and needs to control the game action based on conditions of the game at different times. Here’s how your coder can write code for logic operations in his game.And
The image below shows a portion of the game using theand
operation in Scratch. The frog object has three variables — lives
, timer
, and y-position
. When the green flag is pressed, the values of lives
, timer
, and y-position
are set. The say
command announces the Boolean value of the logic operationlives > 0 and timer > 0
and
command executes when all conditions are true.Because both statements are true, the frog announces true
.
Not
What you see below shows a new version of the game using thenot
operation in Scratch. When the green flag is pressed, the values of lives
, timer
, and y-position
are set. The say
command announces the Boolean value of the logic operationnot touching car
not
command changes the Boolean state.The value of touching car
is false
, so the value of not touching car
is true
. The frog announces true
!
Or
The image below shows another version of the game demonstrating theor
operation in Scratch. When the green flag is pressed, the values of lives
, timer
, and y-position
are set. The say
command announces the Boolean value of the logic operationtouching beetle or touching butterfly
or
command executes when at least one condition is true.The value of touching beetle
is true
, and the value of touching butterfly
is false
. So the frog announces true
!
Check out the image below to see a slightly altered version of the game conditions involving the or
command. In this case, the beetle is no longer caught by the frog's tongue and they aren’t touching. The value of touching beetle
is now false
, and the value of touching butterfly
is also false
. So the frog announces false
.
or
command yields false when none of the conditions is true.In Python
For young coders working in Python, compounding logical operators allow for structuring more precise control in their programs. For example, a program may be structured to compute different paychecks for people with different salaries, bonuses, and other variables. The table below shows the logical operators your young coder uses in Python.Logical Operators in Python
Operator | What It Means |
== |
equivalent to |
and |
and |
not |
not |
or |
or |
pay
, salary
, and bonus
, where the current value of each is pay = 50000
, salary = 40000
, and bonus = 10000
. The code and its execution are created in pythontutor.com.In JavaScript
Coders can also use logical operators in JavaScript to control the execution of their programs. This table shows the logical operators your young coder uses.Operator | What It Means |
== |
equivalent to |
&& |
and |
! |
not |
|| (double pipes) |
or |
In Java
When programming in Java, young coders can — with a few exceptions — use the same logical operators shown in the table above. A key exception your coder needs to know is how to compare objects. The equality of objects should not be tested using the==
operator. Instead, when trying to determine equivalence between the object values, use the .equals()
method. Here is an example:name.equals("Speedy Gonzales")
If the two objects are equal, the equals
method returns true
. Otherwise, it returns false
.