This is going to be a fun week at ng-club! We are going to work on creating a “Choose Your Own Adventure” game. This exercise will specifically highlight the use of conditional statements in code.

## The Boolean

The first major concept to understand is a type of variable called a boolean. A boolean is one of two values: true or false. In most cases, however, boolean values are set by comparing different values. For example:

``````

// this evaluates to true
4 + 7 === 11

// this evaluates to true
1 + 1 !== 5

// this evaluates to true
1 < 5

// this evaluates to false
1 + 1 === 5

// this evaluates to true
"hello, Jeff" === "hello, Jeff"

// this evaluates to true
"hello, Jeff" !== "hello, Rob"

// this evaluates to false
"hello, Jeff" === "hello, Rob"

``````

You will note that there are different symbols used to compare two values.

The first one is `===` which you should be careful to remember is very different than a single `=`. I single `=` is used to variable assignment (i.e. setting a variable value), while the triple `===` is used for comparison to see if the two values are equal to each other.

For the other values, `!==` checks if the two values are NOT equal to each other. Then there is ` > ` which checks if the first value is GREATER THAN the second value (only used with numbers).

## The IF – ELSE IF – ELSE Statement

In your code, booleans are most often used in either loops (more on that next week) or conditional IF statements that look something like this:

``````
if (someVariable === "yes") {
console.log('Got to yes');
} else if (someVariable === "no") {
console.log('Got to no');
} else {
console.log('Got unknown value: ' + someVariable);
}
``````

In this code there is a variable called `someVariable` that is being compared first against the string “yes” and then the string “no”. The way IF conditional statements work is that when any comparison evaluates to `true` then the code within that block (i.e. inbetween the { }) is executed. If, however, the comparison evaluates to `false` then the code in that block is skipped.

So, for example, if you had `var someVariable = "yes";` and then run this code, the first conditional would evaluate to `true` and a message would be printed to the console “Got to yes”. The second conditional (i.e. `someVariable === "no"`) would evaluate to `false` so that block is ignored. Finally the `else` is also ignored. The `else>` will only run if all the other conditions evaluate to `false`.

So, knowing all this, it is pretty easy to set up a function to do a Choose Your Own Adventure style game like this:

``````
var input = window.prompt('A monster attacks you. Do you run? (enter yes or no)');

if (input === 'yes') {
console.log('You run and live. Whew!');
} else if (input === 'no') {
console.log('You stay and die. Sorry!');
} else {
console.log('Sorry, I didn't understand. Lets try again.');