Math & Logic
Math Operators
You can modify numbers by using the math operators + - * /
.
Expressions can be grouped together with parentheses ( )
.
$numPosts = 2 + 3 $numUpvotes = 10 $numKarma = ($numPosts * 2) + numUpvotes //= 20
Combined Operators
Math operators can be combined with the =
operator, as an easy way to modify the current variable.
$numKarma = 5 $numKarma += 2 //= 7 // same as... $numKarma = $numKarma + 2 // More examples $a += 2 // $a = $a + 2 $a -= 2 // $a = $a - 2 $a *= 2 // $a = $a * 2 $a /= 2 // $a = $a / 2
Comparison Operators
Comparison operators compare two values, and return true
or false
.
// equal 1 == 1 //= true 1 == 2 //= false // not equal 1 != 5 //= true 2 != 2 //= false // greater/less than 2 > 1 //= true 1 < 5 //= true // equal or greater/less than 2 >= 2 //= true 2 <= 0 //= false // strings 'red' == 'red' //= true 'red' != 'blue' //= true 'red' == 'red ' //= false (extra space) 'red' == 'Red' //= false (not exact case) // different types are not equal '0' == 0 //= false 'true' == true //= false
=
(assign) with ==
(compare). THT will help you prevent this common mistake, but be careful.Conditional Statements
if
Statement
The if
statement executes a block of code if the condition is true
.
A block of code is surrounded by curly braces { }
.
if condition { // code to run if condition is true }
For example:
if $numCats > 100 { print('It`s a cat-astrophe!') }
if / else
Statement
The else
statement executes a block of code if the condition is false
.
if condition { // code if condition is true } else { // code if condition is false }
Example:
$numGoldCoins = 30 $tubaPrice = 33 if $numGoldCoins >= $tubaPrice { print('You can buy the tuba! :)') } else { $needNumCoins = $tubaPrice - $numGoldCoins print('You need ' ~ $needNumCoins ~ ' more gold coins.') } //= 'You need 3 more gold coins.'
else if
Statement
The else
and if
statements can be chained together.
Each condition is checked from top to bottom. Only the first true condition will be run.
if condition1 { ... } else if condition2 { ... } else if condition3 { ... } else { // if all above conditions are false }
Example:
$score = 800 $highScore = 1000 if $score > $highScore { print('You set a new high score! :)') } else if $score == 0 { print('Worst score ever. :(') } else { print('Try again. :|') } //= 'Try again. :|'
Logical Operators ||
, &&
Logical operators let you join comparison operators.
Operator | Name | Description |
---|---|---|
&& |
AND | BOTH conditions must be true |
|| |
OR | EITHER condition must be true |
// And... if $ageYears < 13 && $movieType == 'horror' { print('This movie is too scary for you.') } // Or... if $heightCm < 120 || $isAfraidOfHeights { print('Do not enter this ride!') }
Grouping
When mixing AND and OR expressions, use parens (...)
to eliminate ambiguity.
Example:
if $isAtRestaurant && ($hasReservation || $isFamous) { print('You may enter the restaurant.') }
NOT operator !
Precede an expression with !
to convert true
to false
and vice versa.
if !$hasMagicShield { print('The dragon eats you!') }
Avoid negatives in your variable names, which can result in confusing double-negatives, which in turn can often lead to bugs.
// ✕ AVOID THIS if !$isNotEmployee { print('Employee discount!') }
Truthy/Falsey Values
As a shortcut, you can use a standalone value in place of a Boolean expression.
The following empty values are treated as false
, and everything else is true
:
Type | Empty/False Value |
---|---|
Boolean | false |
Number | 0 |
String | '' |
List | [] |
Map | {} |
Object | null |
Examples:
// Boolean $isLoggedIn = true if $isLoggedIn { print('Welcome back!') } // Number $numPosts = 0 if !$numPosts { print('Nothing here!') } // String $name = 'Tai' if $name { print('Welcome back, ' ~ $name) } // Lists $replies = [] if $replies { print($posts.length() ~ ' replies') }