最新!JavaScript入門講座ーdo-while文をわかりやすく解説

JavaScript
この記事は約5分で読めます。

繰り返し処理を行う場合は、for文もしくはwhile文を使うことが多いです。ですが、while文には実は親戚とも言える別の書き方が存在します。

それがdo-while文です。do-while文は基本的にはwhileと同じ処理をしますが、一部分だけ違う部分があります。今回は、初心者の方向けにdo-while文についてわかりやすく解説していきます。

本記事のペルソナ
  • do-while文を学びたい方
  • ループ処理を学んでいる方
  • do-while文がわからない方
  • JavaScript初学者の方

do-while文の解説

do-while文の概要

do-while文は基本的にはwhileと同じ処理をする文でありますが、書き方と処理の流れが異なります。

書き方

do{

実行させる処理1;
実行させる処理2;
….
}while(条件式);

do-while文は前にdoを記述し、肝心のwhileは最後に持ってきます。
do-while文は繰り返し処理は少なくとも、一回は必ず行われることを意味します。

どういうことかというと、while文はif文のように先頭で条件式を判定し、ループ処理を実行するかしないかを決めています。それに対して、do-while文は一度、ループ処理に入りあとから条件式を判定しています。

do-whileは繰り返しの後にループを続けるか続けないかの判断をし、プログラムは基本的に上から下へと順番に処理をされますので、必ず処理が1回行われるというわけです。これによって、do-while文とwhile文に違いが生まれるのです。

do-whileの使い方

do-while文の概要を学んだところで、早速使い方を学んでいきましょう。次のサンプルを見てみてください。

let number = 10;

do{
    console.log(`${number}`);
    number += 1;
}while(number <= 20);
$ node dowhile.js

10
11
12
13
14
15
16
17
18
19
20

while文と同じく、変数の初期化などはループの外で行います。
このサンプルではこのような挙動になりますが、whileと同じ結果が得られるかと思います。先に数字が表示され、そのあとに加算を行い、条件式の判定に移っていきます。

では、次の例を見ていきましょう。

let rondom;

do{
    rondom = Math.floor(Math.random()*10)+1;
    console.log(`${rondom}`);
}while(rondom != 10 && rondom != 5);
$ node dowhile.js

//実行例1
7
3
4
9
10

//実行例2
6
6
2
4
4
10

このサンプルを実行すると、このような挙動になります。
Math.floor(Math.random())は乱数を生成する関数になります。よく使われることが多いので覚えておくといいかもしれません。このサンプルに場合だと1から10までの範囲で整数をランダムで初期化しています。

while文は回数に関係なく、条件式がtrueの間のみループ処理を行います。do-while文やwhileはこの点が便利なポイントで、こういった自分でループをする条件を決めるときに使うのが理想的です。

また、このサンプルでは変数に値を代入せず、ループ処理の中でその都度初期化しています。このように変数をループ内で初期化したいときにdo-while文は便利です。なぜなら、条件式はループの最後なので必ず一度は処理が実行してくれるからです。

実行すると、毎回結果が変わってくるのも確認してみてください。

whileとdo-whileの違いを確認

では、while文とdo-while文の挙動の違いを理解していきましょう。
次のサンプルを見て、実行してみてください。

let money = 100000;

while(money >= 1000000){
    console.log(`お金は${money}だけあります。`);
    money += 100000;
}
$ node while.js
let money = 100000;

do{
    console.log(`お金は${money}だけあります。`);
    money += 100000;
}while(money >= 1000000);
$ node dowhile.js

お金は100000だけあります。

この二つのサンプルを実行してみると、このようになるはずです。この二つのサンプルの違いはwhile文を使っているか、do-while文を使っているかだけの違いです。

どちらもwhileの条件式はfalseであるので、ループ処理は実行されません。しかし、do-while文は1度だけ出力されています。
これがwhile文とdo-while文の違いです。falseだとしても、ループの後で判定されますから最低1回はじっこうされるというわけです。

まとめ

では今回のまとめです。今回は次のようなことを学びました。

まとめ
  • do-while文
  • do-while文の性質
  • whileとdo-whileの違い

今回はここまでとなります。お疲れ様でした。

参考文献

にほんブログ村 IT技術ブログへ
にほんブログ村
タイトルとURLをコピーしました