do...while
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
do...while
文は指定された文を、テスト条件が false に評価されるまで実行するループを作成します。条件は文を実行した後に評価されます。結果として、指定された文は少なくとも 1 回は実行されます。
試してみましょう
let result = "";let i = 0;do { i = i + 1; result = result + i;} while (i < 5);console.log(result);// Expected output: "12345"
構文
do statementwhile (condition);
statement
少なくとも 1 回は実行され、条件が真と評価されるたびに再実行される文。ループ内で複数の文を実行するには、それらの文をグループ化するためにブロック文 (
{ /* ... */ }
) を使ってください。condition
ループを通過した後ごとに評価される式。もし
condition
がtrue に評価されるなら、statement
は再度実行されます。condition
がfalse に評価されるときは、制御がdo...while
に続く文へ渡ります。メモ:
break
文を使うと、condition
が false と評価される前にループを停止することができます。
例
do...while
の使用
次の例では、do...while
ループを少なくとも 1 回は実行し、i
が 5 より小さいという条件を満たさなくなるまで反復します。
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);
条件として代入文を使用
場合によっては、条件として代入を使用することは意味があります。しかし、その場合、正しい方法と間違った方法があります。while
のドキュメントでは、代入を条件として使用の節で、知っておくべき、そして従うべき一般的な良い実践例を示しています。
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification # sec-do-while-statement |