As a newcomer to coding, the while and for loops are the first two iteration structures you will learn. They’re critical to understand, as they open up a world of possibilities when paired with decision structures like if/else statements.
If you’re learning on your own or your instructor was not particularly opinionated, there’s a good chance you’re asking yourself, “How do I pick between the two?”
Difference Between a For Loop and While Loop
- For Loop: A for loop is an iteration method that is best used when you know the number of iterations ahead of time. In JavaScript, it's typically followed by initialization, expression and increment statements when defined.
- While Loop: A while loop is an iteration method that is best used when you don't know the number of iterations ahead of time. The contents of the loop are executed as long as the expression evaluates to
true
.
We’re here to answer that question. While I’ll be using JavaScript for all the code examples, the concepts and opinions really extend to any language that supports both of these.
Let’s dive in. We’ll begin with a brief recap of the syntax involved for both — just in case.
What Is a For Loop?
A for loop is more structured than the while loop. The keyword for
is used, followed by three statements:
- Initialization: Executed before the loop begins.
- Expression: Evaluated before each iteration, exits the loop when false.
- Increment: Executed at the end of each iteration.
for(count=1; count < 10; count++) {
console.log(count);
}
The increment does not have to be ++
, but you’ll see that the most often.
So, in summary, the while loop has a looser syntax, and the for loop has a more rigid syntax. A while loop expects some sort of modification to the variable in the body, whereas everything is in the for loop’s definition.
What Is a While Loop?
A while loop has lower overhead between the two iteration structures. The loop consists of the keyword while
followed by an expression and curly braces. The contents of the loop — what is between the curly braces — are executed as long as the expression evaluates to true
.
while(count < 10) {
console.log(count);
}
Now, the example above is incomplete because a while loop needs a way to eventually exit the loop. Normally, this is done by modifying the variable in the expression.
let count = 1;
while(count < 10) {
console.log(count);
count++;
}
For Loops vs. While Loops
Deciding which loop to use is ultimately a judgment call. Don’t let my opinion sway you away from what’s comfortable for your own eyes, especially if you’re a beginner.
There are other more advanced iteration structures that you can eventually grow to learn, so don’t get hung up on deciding between these two.
With that said, my universal rule for choosing between a while loop and for loop is that I use while loops when I do not know the number of iterations ahead of time and for loops when I do know.
Let’s go through a few examples of each:
- Use a for loop to iterate over an array.
- Use a for loop when you know the loop should execute n times.
- Use a while loop for reading a file into a variable.
- Use a while loop when asking for user input.
- Use a while loop when an update to a loop variable depends on external conditions.
Frequently Asked Questions
When should I use a for loop instead of a while loop?
When coding, use a for
loop when you know the number of iterations in advance, and use a while
loop when the number of iterations is uncertain and depends on a condition.
What are the key differences between for and while loops?
In JavaScript, a for
loop allows for initialization, expression and increment statements when defined, giving it a more rigid structure. A while
loop only requires an expression statement when defined.