JavaScriptを一から理解する: while / do...while
はじめに
こんにちは、Doxperと申します。
今回はJavaScriptのwhile
/do...while
命令を使った繰り返し処理についてご紹介します。
この記事でできるようになること
-
while
/do...while
命令の使い方について理解することができる。 -
while
命令とdo...while
命令の違いについて理解することができる。 -
for
命令とwhile
命令の使いわけについて学ぶことができる。
対象読者
- エンジニアを目指している同士
- JavaScriptの基礎を身につけたい方
- 過去にプログラミング学習に挫折した方
- プログラミング言語は他に触ったことがない方
JavaScript while/do...while Loop
前回の記事ではfor
文を使った繰り返し処理について説明しましたが、今回は同じく繰り返し処理で使用されるwhile
/do...while
ループについてご紹介します。
while命令
while
/do...while
命令は、あらかじめ与えられた条件式がtrue
である間処理が繰り返されます。
まずはwhile
命令の構文をみてみましょう。
while(条件式) {
//条件式がtrueの時実行される命令
}
while
命令の実行フローは次のようになります。
-
(条件式)
を評価する。 -
(条件式)
がtrue
の場合while
ブロック内のコードを実行する。 -
(条件式)
がfalse
と評価されるまで (1) ~ (2) を繰り返します。
while命令フローチャート
実際に使用例をみてみましょう。
let i = 0;
while (i < 5) {
i++;
console.log("iの値は" + i);
}
iの値は1
iの値は2
iの値は3
iの値は4
iの値は5
do...while命令
次にdo...while
命令についてご説明します。
まずは構文から確認します。
do {
//条件式がtrueの時実行される命令
} while (条件式);
do...while
命令の実行フローは次のようになります。
1. 初めにdo...while
ブロック内のコードが実行されます。
2. 次に(条件式)
を評価します。
3. (条件式)
がtrue
と評価された場合、do
ブロック内の処理が再度実行されます。
4. (2) ~ (3) の処理を条件式がfalse
と評価されるまで繰り返します。
while命令フローチャート
do...while
を使った例をみてみましょう。
let i = 0;
do {
i++;
console.log("iの値は" + i);
} while (count < 5);
iの値は1
iの値は2
iの値は3
iの値は4
iの値は5
while
命令とdo...while
命令の違いをまとめると以下のようになります。
概要 | |
---|---|
while 命令 |
ループの最初に条件式を判定(条件によっては一度もループしない) |
do...while 命令 |
条件に関わらず一回はループを実行し、その後条件式を評価 |
無限ループ
永遠に終了しないループのことを無限ループといいます。
次のコードは条件式が常にtrueと評価されるため無限ループが発生してしまいます。
//無限ループ
let i = 1;
do {
console.log("無限ループ発生中");
//(iの値が変わらない)
} while (i < 10);
for vs while ループ
最後にfor
命令とwhile
命令の使いわけについて簡単に説明します。
for
命令は、通常、反復回数が分かっている場合に使用します。
一方while
命令は繰り返しの回数が決まっておらず、条件を満たしている限り処理を繰り返したい場合に用いられます。
//5回処理を実行
for (let i = 0; i < 5; i++) {
console.log("iの値は" + i);
}
おわりに
いかがでしたでしょうか?
今回はJavaScriptのwhile
/do...while
命令を使った繰り返し処理についてご紹介しました。
一見するとwhile
とdo...while
は同じように振る舞うように見えますが、重要な違いがあるので個々の構文だけではなくそれぞれの違いを理解しておくことで意図しない挙動を防ぐことができます。
また、記事について間違っている点やよりよい表現などの提案などありましたらご気軽にコメントいただけますと幸いです。
それではまた次回の記事でお会いしましょう👋
参考文献
ループと反復処理 · JavaScript Primer #jsprimer
山田 祥寛(2016).改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
JavaScript while and do...while Loop (with Examples)
Discussion