JavaScript while Loop
The while
loop repeatedly executes a block of code as long as a specified condition is true
.
The syntax of the while
loop is:
while (condition) { // body of loop }
Here,
- The
while
loop first evaluates the condition inside( )
. - If the condition evaluates to
true
, the code inside{ }
is executed. - Then, the condition is evaluated again.
- This process continues as long as the condition evaluates to
true
. - If the condition evaluates to
false
, the loop stops.
Flowchart of while Loop

Example 1: Display Numbers From 1 to 3
// initialize variable i let i = 1; // loop runs until i is less than 4 while (i < 4) { console.log(i); i += 1; }
Output
1 2 3
Here is how the above program works in each iteration of the loop:
Variable | Condition: i < 4 | Action |
---|---|---|
i = 1 | true | 1 is printed. i is increased to 2. |
i = 2 | true | 2 is printed. i is increased to 3. |
i = 3 | true | 3 is printed. i is increased to 4. |
i = 4 | false | The loop is terminated. |
To learn more about loop conditions, visit JavaScript Comparison and Logical Operators.
Example 2: Sum of Only Positive Numbers
let num = 0, sum = 0; // loop as long as num is 0 or positive while (num >= 0) { // add all positive numbers sum += num; // take input from the user num = parseInt(prompt("Enter a number: ")); } // last, display sum console.log(`The sum is ${sum}`);
Output
Enter a number: 2 Enter a number: 4 Enter a number: -3 The sum is 6
The above program prompts the user to enter a number.
Since JavaScript prompt()
only takes inputs as string, parseInt()
converts the input to a number.
As long as we enter positive numbers, the while
loop adds them up and prompts us to enter more numbers.
So when we enter a negative number, the loop terminates.
Finally, we display the total sum of positive numbers.
Note: When we add two or more numeric strings, JavaScript treats them as strings. For example, "2" + "3" = "23"
. So, we should always convert numeric strings to numbers to avoid unexpected behaviors.
JavaScript do...while Loop
The do...while
loop executes a block of code once, then repeatedly executes it as long as the specified condition is true
.
The syntax of the do...while
loop is:
do { // body of loop } while(condition);
Here,
- The
do…while
loop executes the code inside{ }
. - Then, it evaluates the condition inside
( )
. - If the condition evaluates to
true
, the code inside{ }
is executed again. - This process continues as long as the condition evaluates to
true
. - If the condition evaluates to
false
, the loop terminates.
Flowchart of do...while Loop

Example 3: Display Numbers from 3 to 1
let i = 3; // do...while loop do { console.log(i); i--; } while (i > 0);
Output
3 2 1
Here, the initial value of i is 3. Then, we used a do...while
loop to iterate over the values of i. Here is how the loop works in each iteration:
Action | Variable | Condition: i > 0 |
---|---|---|
3 is printed. i is decreased to 2. | i = 2 | true |
2 is printed. i is decreased to 1. | i = 1 | true |
1 is printed. i is decreased to 0. | i = 0 | false |
The loop is terminated. | - | - |
The difference between while
and do...while
is that the do...while
loop executes its body at least once. For example,
let i = 0; // false condition // body executes once do { console.log(i); } while (i > 1); // Output: 0
On the other hand, the while
loop doesn't execute its body if the loop condition is false
. For example,
let i = 0; // false condition // body not executed while (i > 1) { console.log(i); };
Example 4: Sum of Positive Numbers
let sum = 0, num = 0; do { // add all positive numbers sum += num; // take input from the user num = parseInt(prompt("Enter a number: ")); // loop terminates if num is negative } while (num >= 0); // last, display sum console.log(`The sum is ${sum}`);
Output
Enter a number: 2 Enter a number: 4 Enter a number: -3 The sum is 6
In the above program, the do...while
loop prompts the user to enter a number.
As long as we enter positive numbers, the loop adds them up and prompts us to enter more numbers.
If we enter a negative number, the loop terminates without adding the negative number.
More on JavaScript while and do...while Loops
An infinite while
loop is a condition where the loop runs infinitely, as its condition is always true
. For example,
let i = 1; // always true condition while(i < 5) { console.log(i); }
Also, here is an example of an infinite do...while
loop,
let i = 5; // always true condition do { console.log(i); } while (i > 1);
In the above program, the condition 1
> 1
is always true
, which causes the loop body to run forever.
Note: Infinite loops can cause your program to hang. So, avoid creating them unintentionally.
We use a for
loop when we need to perform a fixed number of iterations. For example,
// display hi 3 times for (let i = 1; i <= 3; i++) { console.log("hi"); } console.log("bye");
Output
hi hi Hi bye
Meanwhile, we use a while
loop when the termination condition can vary. For example,
// display hi as long as user wants let isDisplay = true; let userChoice = ""; while (isDisplay) { console.log("hi"); userChoice = prompt("print hi again? y for yes: "); if (userChoice != "y") isDisplay = false; } console.log("bye");
Output
hi print hi again? y for yes: y hi print hi again? y for yes: y hi print hi again? y for yes: n bye
In the above program, we let the user print hi
as much as they desire.
Since we don't know the user's decision, we use a while
loop instead of a for
loop.
Also Read: