Version: v0.6.1 - Beta.  We welcome contributors & feedback.  THanks!

# Math & Logic

## Math Operators

You can modify numbers by using the math operators `+ - * /`.

Expressions can be grouped together with parentheses `( )`.

```\$numPosts = 5;
\$numKarma = (\$numPosts * 2) + numUpvotes;

print('You have ' ~ \$numKarma ~ ' karma points!');
//= 'You have 17 karma points!'```

### Combined Operators

Operators can be combined with assignment `=`, as a convenient shortcut.

```\$numKarma = 5;

// Add 2 karma (the long way)
\$numKarma = \$numKarma + 2;  //= 7

// The short way
\$numKarma += 2;

// More examples
a += 2;  // a = a + 2;
a -= 2;  // a = a - 2;
a *= 2;  // a = a * 2;
a /= 2;  // a = a / 2;

// Same with strings
\$message = 'Karma: ';
\$message ~= numKarma;
//= 'Karma: 7'```

NoteTHT does not have auto-increment or decrement operators `++` and `--`, as they often encourage overly dense code that rely on invisible behavior. You can use `+= 1` and `-= 1` in their place.

## Comparison Operators

Comparison operators compare two values, and return `true` or `false`.

```\$a = 1;

\$a == 1;  //= true  (equal)
\$a != 5;  //= true  (not equal)
\$a == 2;  //= false
\$a != 1;  //= false

\$a > -1;  //= true  (greater than)
\$a >= 1;  //= true  (equal or greater than)
\$a < 5;   //= true  (less than)
\$a <= 0;  //= false (equal or less than)

\$color = 'red';
\$color == 'red';   //= true
\$color == 'red ';  //= false (extra space)
\$color != 'blue';  //= true```

TipTry not to confuse `=` (assign) with `==` (compare). THT will try to 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
}

// 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 to run if condition is true
} else {
// code to run if condition is false
}```
```// Example
if \$numGold >= \$priceOfHat {
print('You can buy the hat! :)');
} else {
\$needNumGold = \$priceOfHat - \$numGold;
print('You need ' ~ \$needNumGold ~ ' more gold.');
}```

### `else if` Statement

The `else` and `if` statements can be chained together.

```if condition1 {
// code to run if condition1 is true
} else if condition2 {
// code to run if condition1 is false and
// condition2 is true
} else if condition3 {
// multiple "else ifs" are supported
} else {
// code to run if all conditions are false
}```
```// Example
if \$score > highScore {
print('You set a new high score! :)');
} else if \$score == 0 {
print('Worst score ever. :(');
} else {
print('Try again. :|');
}```

## Logical Operators

Logical operators let you join comparison operators in two ways: `&&` (and) and `||` (or).

```// AND - Both conditions must be true
if \$ageYears < 13 && \$movieType == 'horror' {
print('You should probably watch something else.');
}

// OR - Either condition must be true
if \$heightCm < 120 || \$isAfraidOfHeights {
print('Do not enter this ride!');
}```