JavaScript for Loop VS while Loop
This article is a complementary resource to the Learn JavaScript Basics course.
This article is a complementary resource to the Learn JavaScript Basics course.
Loops are a fundamental concept in programming, allowing you to repeat blocks of code. In JavaScript, both for and while loops are used for this purpose, but each has its strengths and ideal use cases.
However, the key question is: When should you use which loop?
Understanding when to use each loop type will help you write more efficient, readable, and maintainable code.
Let's compare the for and while loop with examples.
Both for and while loops can calculate the sum of numbers from 1 to 5, but the for loop is generally more concise when the range is predetermined.
Using for Loop
let total = 0;
for (let i = 1; i <= 5; i++) {
total += i;
}
console.log(total); // Output: 15
Using while Loop
let i = 1;
let total = 0;
while (i <= 5) {
total += i;
i++;
}
console.log(total); // Output: 15
Both loops achieve the same result.
However, the for loop is more concise when the number of iterations is known. In this case, we know in advance that the loop needs to run 5 times to calculate the sum of numbers from 1 to 5.
The while loop, on the other hand, requires manual initialization and updating of the loop variable (i).
In situations where you don't know how many times a task needs to be repeated, a while loop is often more intuitive.
Consider this task of receiving input from user until they enter 0.
Using while Loop
let number = Number(prompt("Enter a number: "));
while (number !== 0) {
console.log(`The number you entered is ${number}.`);
number = Number(prompt("Enter a number: "));
}
Using for loop
Recreating the above program using the for loop requires unnecessary workarounds. For example, you'd need to set up an arbitrarily large range and then add a break condition.
for (let i = 0; i < 1000000; i++) { // Large range to be sure we reach the target sum
let number = Number(prompt("Enter a number: "));
if (number === 0) {
break;
}
console.log(`The number you entered is ${number}.`);
}
While this works, it's not ideal.
The while loop is more intuitive and efficient in this case, as it doesn't require guessing the range or dealing with unnecessary iterations.
for loops when the number of iterations is known or fixed.while loops when the number of iterations is uncertain.