【JavaScript】do-while文 - 反復処理 / 必ず1回は実行する繰り返し処理

【JavaScript】do-while文 - 反復処理 / 必ず1回は実行する繰り返し処理

JavaScriptのdo-while文(反復処理)について解説します。

検証環境

do-while文

do-while文は“反復処理を実現する構文”です。

while文やfor文と似ていますが、do-while文は必ず1回は繰り返す処理を実行します。

基本構文

do {
    // 処理...
} while( 条件式 );

条件式処理の部分は処理に合わせて記述します。

各項目の内容は次の通りです。

項目 内容
条件式 繰り返しの条件
処理 繰り返す処理

条件式が真の間、繰り返し処理を続けます。

処理順序

do-while文の処理順序をサンプルコードを合わせて以下に示します。

1.処理

処理(ブロック{}内)を実行します。

let num = 1;

do {
    num *= 2;
    console.log(num);
} while ( 条件式 )

サンプルコードでは4〜5行目の部分です。

2.条件式

条件式は最終的に論理値(true/false)となる式です。

そのため、比較演算や論理演算などを使用することが可能です。

let num = 1;

do {
    num *= 2;
    console.log(num);
} while ( num < 30 )

サンプルコードではnum < 30の部分です。

3.継続・終了の判定

条件式の演算結果がtrueの場合は継続、falseの場合はwhile文を終了します。

4.繰り返し

『1.処理』に戻ります。



以上がdo-while文の処理順序です。

ここまでのサンプルコードを実行すると次の結果になります。

2
4
8
16
32

処理順序(具体例)

上記サンプルコードの処理順序を以下に示します。

反復回数 項目 コード numの値
1回目 処理 num *= 2 2
console.log(num); 2
条件式 num < 30 2
継続・終了の判定 (継続) 2
2回目 処理 num *= 2 4
console.log(num); 4
条件式 num < 30 4
継続・終了の判定 (継続) 4
3回目 処理 num *= 2 8
console.log(num); 8
条件式 num < 30 8
継続・終了の判定 (継続) 8
4回目 処理 num *= 2 16
console.log(num); 16
条件式 num < 30 16
継続・終了の判定 (継続) 16
5回目 処理 num *= 2 32
console.log(num); 32
条件式 num < 30 32
継続・終了の判定 (終了) 32

5回目の条件式は演算結果がfalseになり、その後の終了の判定となります。

do-while文の処理を掴むポイントは条件式です。

サンプルコードでは変数numに条件式の演算結果が依存します。

そのため、変数numがどのように変化し、条件式がどのタイミングでfalseになるかを意識するとdo-while文の全体的な処理を理解しやすくなります。

サンプル

let total = 0;

let num = 1;

___ih_hl_start
do {
    total += num;
    num++;
} while( num <= 10);
___ih_hl_end

console.log(total);
55

5〜8行目がdo-while文です。

このサンプルは110までの整数値の合計を算出します。

while文とdo-while文

while文とdo-while文の違いは“繰り返す処理を必ず1回実行するかどうか”です。

do-while文は継続・終了の判定よりも処理を先に実行するため、必ず1回は繰り返されます。

例えば次のwhile文は1度も繰り返されません。

let num = 1;

while( num < 0 ) {
    num++;
    console.log(num);
}

console.log("Exit.");
Exit.

しかし、do-while文の場合は1回だけ実行されます。

let num = 1;

do {
    num++;
    console.log(num);
} while( num < 0 );

console.log("Exit.");
2
Exit.