くり返しとはある変数がある条件を満たすまで繰返して処理を行う事です。
例えば、「変数が1から100になるまで繰り返せ」みたいな。
繰り返しを行わせる命令は、forとwhileがあります。
for 文は回数指定で処理する場合や配列の要素全てに処理する場合に良く使用されます。
for ( 初期化 ; 条件 ; 増分値 ) {
//繰り返し行われる処理
}
初期化とは、繰り返しが始まる前に一度だけ実行されます。
ここで変数の初期化という繰り返しを始める準備を行います。
条件は、
繰り返しを終了する条件です。ここに書いてある条件が満たされている間は繰り返し処理が行われることになり、ここに書いてある条件が満たされなくなった時点で繰り返し処理が終了します。
※ for 文の終了条件は JavaScript では偽になるまで、Visual Basic では真になるまでと違いがありますので Visual Basicに慣れている方は注意して下さい。
増分値は、
繰り返し処理が一回終了するごとにここの処理が実行されます。ここでは終了条件になるために変数をカウントしたりする処理を記述します。
例
for ( cnt = 1 ; cnt <= 100 ; cnt++ ) {
document.write( cnt , "<br>") ;
}
終了条件は変数cntが100以下で、この間にこの処理ブロックを実行します。
変数cntは増分値としてcnt++となっています、これは一回処理ブロックを通る度にcntが+1されるという意味です。もし2ずつ増やしたい場合はcnt+=2となります。
whileは、条件が真の間{}で囲まれた処理ブロックを繰り返し実行します、この時条件の判定は処理ブロックが実行される前に行われます。
var cnt = 0 ;
while(100 > cnt++){
document.write(cnt , "<br>");
}
上までの繰り返しでは先ず条件を調べる→処理を実行するという手順になり、条件によっては一度も処理が実行されないときもあります。
「どんな条件でも一度は処理を実行したい」「何回処理が行われるか分からない」こんな場合に条件を比較するタイミングを後に行う後判定の繰り返しを使用するときがあります。
最低限一回実行した後で条件判定を行うには「do { 処理 } while(条件式)」のように記述します。
var cnt = 0 ;
do {
document.write(cnt , "<br>");
cnt++;
} while ( 100 > cnt );
「break」は繰り返しの途中で突然その繰り返しを終了する命令です。switch命令の時もbreakによってその処理ブロックを終了することによって以後の命令を実行しないように制御していましたが、繰り返しでも同様の事を行えます。
似たような命令にC言語の break , perlの last , Visual Baxic の exit ( for, do )があります。永久ループにならないように注意してください。
「continue」は残りのコードをスキップして判断文に制御をします。
繰り返しの中にさらに繰り返し処理を記述することも可能です。