Version: v0.5.0 - 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 `( )`.

```let numPosts = 5;
let 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.

```let 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`.

```let 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)

let 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 {
let 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 & 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!');
}```