Quantcast
Channel: ループタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 92

JavaScript ループ 「break」「continue」

$
0
0
JavaScriptでループする意味のコードを記述するとき 「for文」か「while文」を使用するかと思います。 for文コード for(let i=0;i<5;i++){ document.write(i); } 出力 01234 while文コード let i=0; while(i<5){ document.write(i); i++; } 出力 01234 上記のfor文とwhile文は同じ意味です。 この2の文に共通して使える「break」、「continue」という2つの命令があります。 簡単にいうと 「break」は、その時点で強制的にループを抜ける 「continue」は、後の処理をせずにループする という意味です。どういうことかというと、 for文「break」コード for(let i=0;i<5;i++){ if(i===3)break; document.write(i); } 出力 012 「document.write(i);」の前に、「if(i===3)break;」を記述することによって、 「もしiが3になったら、強制的にループを抜ける」 という意味になりブラウザへの出力は「3」の時点でループが停止した「012」になり、 for文「continue」コード for(let i=0;i<5;i++){ if(i===3)continue; document.write(i); } 出力 0124 「document.write(i);」の前に、「if(i===3)continue;」を記述することによって、 「もしもiが3の時だけ、continueから後の処理を飛ばしてループを続行する」 という意味になりブラウザへの出力は「3」を飛ばした「0124」になるわけです。 ただこの「continue」は注意が必要で、 while文コード let i=0; while(i<5){   if(i===3)continue; document.write(i); i++; } 出力 無限ルーーーーープ! このように記述をしてしまうと、コードは上から順に読み込んでいくので、 「0」「1」「2」までは問題なくループし、 「3」の時のループでは「continue」が先に読み込まれて、 「i++;」により「i」が1増える前に次のループに行ってしまうので、 どれだけループしても一生「i」は「3」のままということになってしまいます。 while文コード let i=0; while(i<5){ i++; if(i===3)continue; document.write(i); } 出力 1245 このように命令文の順番を変えると、無限ループではなくなりました。 命令の最初に「i++;」があることによって 「0」からの出力ではなく「1」からの出力になってしまいますけどね。

Viewing all articles
Browse latest Browse all 92

Trending Articles