The while statement creates a loop that executes a specified statement as long as the test condition evaluates to true. The condition is evaluated before executing the statement.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
while (condition) statement
condition- An expression evaluated before each pass through the loop. If this condition evaluates to true,
statementis executed. When condition evaluates to false, execution continues with the statement after thewhileloop. statement- An optional statement that is executed as long as the condition evaluates to true. To execute multiple statements within the loop, use a block statement (
{ ... }) to group those statements.
Note: Use thebreakstatement to stop a loop before condition evaluates to true.
Examples
Using while
The following while loop iterates as long as n is less than three.
var n = 0;
var x = 0;
while (n < 3) {
n++;
x += n;
}
Each iteration, the loop increments n and adds it to x. Therefore, x and n take on the following values:
- After the first pass:
n= 1 andx= 1 - After the second pass:
n= 2 andx= 3 - After the third pass:
n= 3 andx= 6
After completing the third pass, the condition n < 3 is no longer true, so the loop terminates.
Specifications
| Specification |
|---|
| ECMAScript (ECMA-262) The definition of 'while statement' in that specification. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
while | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 3 | Opera Full support 3 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 | nodejs Full support 0.1.100 |
Legend
- Full support
- Full support
