 # # Conditionals

Conditionals are a way to let computers make decisions for you. A real world example would be you arrive at a fork in the road. You can either go left (A) or go right (B). You could write a program and when you want to go left, you write code that tells the computer to go (A). And when you want to go right, you write code that tells the computer to go (B). But that means you're constantly having to write code and issue commands to the computer. Wouldn't it be nice if you could write code once that says "if I want to go left, go (A) otherwise I want to go right go (B)". Luckily, this is exactly what conditional statements do for you. Let's look at the basic structure:

```
```

So the `if` starts the conditional statement. `foo` represents the condition we're testing against. In the previous example, this would be whether we want to go left or right. But for code, it would have to something that we could evaluate to either be `true` or `not true`. More on this in a little bit. And notice that the `// do X` and `// do Y` are on separate lines, this is the code you want the computer to execute if the preceding condition is true. And lastly, there is an `else` that is the catch-all if none of the previous conditions are true. In our example, there is only one condition `foo` but we can actually have more conditions. Let's look at a more complex scenario:

```
```

And now we have multiple conditions using `else if`. It should be noted that only a single condition or the `else` block will execute. That's because the computer will test each condition in the order specified. So for our example, the computer will test `foo` then `bar` and then `baz`. And if none of those are true, then it will go to `else` and execute whatever code is specified - in our case `// do Z`.

Next, let's talk about defining the conditional (e.g. `foo` or `bar` or `baz`). The structure of a conditional is something that can evaluate to `true` or `false`. The most common way of doing this is to specify whether two things are equal or not equal and in the case of numbers they could also be greater than or less than. Here is how each of those would look:

```
```

And what if you have two variables that you want to check at the same time. For example, what if you had variables `mochi` and `michi` and you wanted to check the value for both. If you wanted to test if `mochi` was equal to `0` and `michi` was equal to `1`, it would look like:

```
```

So to test that both conditions evaluate to `true`, we use the `&&` operator. And you can use the `&&` operator to string as many things as you want. So for example if you want to check `mochi`, `michi` and `momo`, it would look like `(mochi === 0 && michi === 1 && momo === 2)`.