Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

do...while

BaselineWidely available

Thedo...while statement creates a loop that executes a specified statement as long as the test condition evaluates to true. The condition is evaluated after executing the statement, resulting in the specified statement executing at least once.

Try it

let result = "";let i = 0;do {  i += 1;  result += i;} while (i < 5);console.log(result);// Expected output: "12345"

Syntax

js
do  statementwhile (condition);
statement

A statement that is executed at least once and re-executed as long as the condition evaluates to true. You can use ablock statement to execute multiple statements.

condition

An expression evaluatedafter each pass through the loop. If this conditionevaluates to true,statement is re-executed. When conditionevaluates to false, execution continues with the statement after thedo...while loop.

Description

Like other looping statements, you can usecontrol flow statements insidestatement:

  • break stopsstatement execution and goes to the first statement after the loop.
  • continue stopsstatement execution and re-evaluatescondition.

Thedo...while statement syntax requires a semicolon at the end, but theautomatic semicolon insertion process may insert one for you if the lack of a semicolon results in invalid syntax.

Examples

Using do...while

In the following example, thedo...while loop iterates at least once andreiterates untili is no longer less than 5.

js
let result = "";let i = 0;do {  i += 1;  result += `${i} `;} while (i > 0 && i < 5);// Despite i === 0 this will still loop as it starts off without the testconsole.log(result);

Using false as do...while condition

Because the statement is always executed once,do...while (false) is the same as executing the statement itself. This is a common idiom in C-like languages, which allows you to usebreak to break out of branching logic early.

js
do {  if (!user.loggedIn) {    console.log("You are not logged in");    break;  }  const friends = user.getFriends();  if (!friends.length) {    console.log("No friends found");    break;  }  for (const friend of friends) {    handleFriend(friend);  }} while (false);// The rest of code

In JavaScript, there are some alternatives, such as using alabeled block statement withbreak:

js
handleFriends: {  if (!user.loggedIn) {    console.log("You are not logged in");    break handleFriends;  }  const friends = user.getFriends();  if (!friends.length) {    console.log("No friends found");    break handleFriends;  }  for (const friend of friends) {    handleFriend(friend);  }}

Or using a function:

js
function handleFriends() {  if (!user.loggedIn) {    console.log("You are not logged in");    return;  }  const friends = user.getFriends();  if (!friends.length) {    console.log("No friends found");    return;  }  for (const friend of friends) {    handleFriend(friend);  }}

Using an assignment as a condition

In some cases, it can make sense to use an assignment as a condition, such as this:

js
do {  // …} while ((match = regexp.exec(str)));

But when you do, there are readability tradeoffs. Thewhile documentation has aUsing an assignment as a condition section with our recommendations.

Specifications

Specification
ECMAScript® 2026 Language Specification
# sec-do-while-statement

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp