Boolean is false but it should be true?


# boolean_2 = false || -10 > -9
#boolean_2 = false

I’m not understanding why it’s false, shouldn’t it be true since the Boolean_2 variable is false and/or false?

doesn’t false=false make it true?

or is it just because the boolean_2 variable is false but it’s also false on the other side of the “||”?? so it’s an AND not an OR???

AND this one:

# boolean_2 = !true && (!true || 100 != 5**2)
#boolean_2 = false

isn’t boolean_2 [not true] AND ([not true] OR [100 Not equal to 5*5])?

#boolean_3 = true || !(true || false)
#boolean_3 = true

and boolean_3 [true] OR ([not true OR not false])

I had those reversed, but I’m guessing I’m not getting the OR command, is the OR and If/Then/But instance?

just wanted to make sure I’m understanding this…thanks!


false == false is true, but false || false is false.

Operator, actually. OR short-circuits on true, so any number of operands can be false, but if any one of them is true, the outcome is true.

t || f || f || f || f  => true

AND short-circuits on false, so the minute we see false &&... we can immediately ignore the rest of the expression. It is false on that evidence alone, just as OR yields true on a single true.

AND, and OR are binary operators in that they take two operands. NOT is a unary operator that always precedes it value. In this case we use the term value because it can be anything, not just a boolean.

! 1 => false
! '' => true

The operator not only negates its operand, it casts it to a boolean before negating.

Once again we see the above is immediately true since the principal operator is OR. We may ignore the remaining operand. Seeing these sorts of things on sight is a very important skill to develop, along with the thought process involved in making quick assessments.

Before letting the computer tell you what it sees, be sure to pencil sketch for yourself, and eventually sketch in your mind the outcome. This is not a memory based skill, but one which must be practiced to acquire any degree of proficiency.


Extended example

You might find this an interesting parallel, albeit involving the physics of electricity. The logic is directly parallel with program logic–electric current and voltage presence versus program flow and state inspection.

logic gate (AND, OR, XOR, NOT, NAND, NOR and XNOR)

It’s definitely something to put on the back burner while you progress, but which you might find rewarding when you come back to review.


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.