男は永遠と繰り返し作業を行った。
今回は繰り返し処理、つまりループ処理です。
指定した分繰り返してよ。
とのお話の前にですが、非常に重大なお知らせがあります。
ブラウザがクラッシュする可能性があります。
手法によっては無限ループが発生する事があります。そうなるとブラウザを閉じるしかなくなるのです。
という危険性ももった便利なやつらです。
for文
for(【初期変数】;【繰り返し条件】;【変数変化式】) { // 処理 }
繰り返し条件がtrueの回数分ループし、処理がその回数分走ります。
【初期変数】
for文内だけで使用する変数を作る場合はここで作成します。
無くても動きます。
【繰り返し条件】
この式がtrueの間はループが回ります。
【変数変化式】
ループが1回まわる毎に実行される部分です。
基本的な使い方
for(var i = 0;i<5;i++) { // 処理 }
条件:変数iが5より小さい場合はループする。
ループ毎処理:変数iに1加算する。
といった意味となり、この条件だと5回ループが回る事になります。
変数iは0スタートなので、0 1 2 3 4と増えていきますよね。
これを無限ループにするためには?
条件文がfalseにならなければ良いので、i++をi--にしてしまいましょう。ウェヒヒ
while文
while(【繰り返し条件】) { // 処理 }
書き方はforと違ってシンプルです。
forと同じく、【繰り返し条件】がtrueの場合永遠とループします。
基本for文と動作に関しては大差ありませんので、特に書くことはありません。
while処理の中で条件分をfalseにする処理を入れないと無限ループ発生でヒャッホウです。
do while文
do{ // 処理 } while (【繰り返し条件】);
みため凄くキモい感じが未だにぬぐえません。形が。
これはループ分なのですが、ループに入る前に、まず。doの中の処理を1回実行します。
実行後、繰り返し条件がtrueであればループ処理として、doの中の処理をfalseになるまで実行します。
break文
for(var i = 0;i<5;i++) { // 処理 if(i==2) { break; } alert(i); } // 0 1 はalertされるが、それ以降は実行されない(ループが止まって次の処理へ向かうs)
swich文で出て来たbreakです。
処理を止めてしまうって事です。
ループ中の場合、条件の結果に関わらずループが止まります。
continue文
for(var i = 0;i<5;i++) { // 処理 if(i==2) { continue; } alert(i); } // 0 1 3 4 とalertされる。2はalertしない
この構文を使うと、現在のループをヤメて、次のループをまた始めます。
この時は処理したくないけど、続きはしたい。みたいなときに使います。
練習問題的な
-
1:for文
初期変数:変数iは1とする
繰り返し条件:変数iが10以上になるまで
変数変化式:変数iに1をプラスする
変数iをループ毎にalertし、値を表示させる。 -
2:while文
繰り返し条件:変数iiが4以上になるまで
変数iiをループ毎にalertし、値を表示させる。
無限ループにならないように気を付けてください。 -
3:do while文
繰り返し条件:変数iiiが4以上になるまで
変数iiiをalertさせ、その後ループしないようにする -
4:break continue文
for文
初期変数:変数i4は0とする
繰り返し条件:変数i4が10以上になるまで
変数変化式:変数i4に1をプラスする
変数i4をループ毎にalertし、値を表示させる。
但し、変数i4が【2の倍数】の時はalertをしない。
変数i4が【7】になった時点でループを止める。
ヒント:2の倍数って事は、2で割ると余りが0ですよね。
【変数】%2とすると【変数】を2で割った時の【余り】が算出できます。へぇ。