Wow I never realised there were so many different ways to achieve the same thing!

Well, some results above are achieved with

*redundant* operations.

"If" statement tests the result of boolean expression.

When you do "if (var)" that expression is calculated as boolean value of a variable.

When you do "if (var == true), then

*two* operations are performed: 1) boolean value of a variable, 2) comparing boolean value to another boolean value, and result is tested by "if".

It's like, you may do "x = 2 + 2;" or "x = 4", the result is same but in one case you are doing excessive calculation.

Same with "if/else if", if your condition in the "else if" is strictly the inverse of the first condition under "if", then its redundant and "else" will suffice.