# loops

In this module we'll discuss loops.

## File Location

You should be located in the `loops.js` file:

```
            └── 2-CSS-Basics
            └── 3-JavaScript-Basics
                07-loops.js       <----Work here
```

## Description

Loops allow us to repeatedly run a block of code until a condition is met.

You need to do something a lot that involves counting, like list all one million users in your database? You're going to probably need a loop.

## Sample Code

Let's look at a `for loop`. It's very common, and you need to know how to write one. There are other types of loops, but this is a good place to start learning.

Quick thought: _What if we wanted to print a range of numbers all the way to 100._

```javascript
console.log(1);
console.log(2);
console.log(3);
console.log(4);
console.log(5);
```

That would be dreadfully inefficient to have to write. A for loop can take care of this in no time, and in only 3 lines of code.

```javascript
for (var i = 1; i < 101; i += 1){
    console.log(i);
}
```

## Syntax

Let's look at the syntax of a for loop. This takes a lot of practice and a lot of reading. Then, more practice.

Here's the structure:

```javascript
    for (setup; test expression; increment) {
        body;    
    }
```

And another example:

```javascript
        //1        //2    //3
for ( var i = 1; i <= 10; i++){
    console.log("Number:", i);
}
```

1. This is the starting point. We're starting to count from 1.&#x20;
2. This is the conditional section, the condition to be met. As long as `i` is under 10 or equal to 10, keep going.
3. This is what it does when it keeps going. `i++` is shorthand for saying, add 1 to i.&#x20;

So here are some thoughts for you: 1. This loop is going to start at 1. 2. It's going to check if i is less than 10. It is. It's 1. 3. So we're going to execute the third spot: `i++`. So add 1 to i. 4. Then, print i to the console. The value of i prints each time until it reaches 10.

## Practice

The only way to learn is to write a bunch of loops. More than you think you need. Let's give you a few examples:

* Write a loop that counts to 50 by 5s. Starts at 0.&#x20;
* Write a loop that starts at 20 and counts down to 1. It subtracts one each time. &#x20;
* Write a for loop that starts at 3, and increments by 5, but doesn't go over 30.

## Answers

Write a loop that counts to 50 by 5s. Starts at 0:

```javascript
for(var i = 0; i <= 50; i+=5){
    console.log(i);
}
```

Write a loop that starts at 20 and counts down to 1. It subtracts one each time:

```javascript
for (var i = 20; i > 1; i--){
    console.log(i);
}
```

Write a for loop that starts at 3, and increments by 5, but doesn't go over 30:

```javascript
for(var i = 3; i < 30; i += 5){
    console.log(i)
}
```

## More Practice

You should write 10 loops. Challenge yourself. This is the way to learn. Here are a couple starter ideas:

* Count to 200 by 25s. Start on 25.
* Count to 10 by 2s. Start at 6.
* Count to 10 by 5s. Start at 100.&#x20;
* Write a loop that calls a function every time it iterates:

```javascript
function pacersWon(){
    console.log("Pacers won!");
}

for(var i = 0; i < 5; i++){
    pacersWon();
}
```

Keep going with examples like these until you can write a simple for loop without looking at other examples.
