for文(for ステートメント)は、指定した条件が当てはまる間、処理ブロック内のステートメントを繰り返し実行します。while
文や do while 文と異なるのは、カウンタを利用し、カウンタの値を条件として、繰り返し処理を行う点です。そのためのカウンタを利用する仕組みが用意されています。
カウンタはわかりますね? よくホームページに見られる訪問者数をカウントアップする仕組みのことです。for 文のカウンタはもう少し柔軟性があります。
for 文の書式は以下のとおりです。
●記述例
//1から20までを加算します。
for ( i=1 ; i<=20; ++i) {
total += i ;
trace("i:" + i + ",total:" + total);
}
少しむずかしい書式ですね。
' for ' の後にカッコ()でくくった初期化式、条件式、次処理式の3つの式、その後ろに中カッコ{}でくくった処理ブロックを記述します。式と式の間には、ステートメント区切りのセミコロン(
; )を置きます。
初期化式はカウンタ変数の初期化を行う代入式です。カウントを開始するはじめの数値を代入します。初期化式は、for
文を実行する最初に一度だけ実行されます。
通常、カウンタ変数には、記述例のようにアルファベットの i が用いられますが、これはプログラムの世界の慣習です。i 以外の変数名を使用してもかまいません。
記述例は1から20までを加算するスクリプトなので、カウンタ変数の初期値として1が代入されています。
for 文の全体のフローを見てみましょう(下左図)。
はじめに、初期化式でカウンタ変数の初期値が設定されます。次に初期値をもとに条件式が評価されます。true なら処理ブロックを実行、false
なら for 文を抜けます。処理ブロックを実行した場合は、次処理式でカウンタ変数の増減を行い、条件式に戻ります。条件式の評価結果が true
の間、この処理が繰り返されます。
記述例では(下右図)、カウンタ変数に初期値 ' 1 ' を代入。条件式( i <= 20 ; //20以下)の評価結果は true で、処理ブロック内を実行(変数
total に i を加算)。次処理式で i をインクリメント(1を加算。2になります)し、条件式に戻ります。 i が21になるまで繰り返し処理が行われます(21でfor
文を抜けます)。
●[ 5 ] ボタンのボタンアクション
on (release) {
for (i = 0; i <=8; ++i){
this["mc" + i].gotoAndStop(5);
}
}
●[ 1 ] ボタンのボタンアクション
on (release) {
for (i = 0; i <=8; ++i){
this["mc" + i].gotoAndStop(1);
}
}