- Home ›
- JavaScript入門 ›
- 繰り返し処理 ›
- HERE
for文の中にfor文を記述
広告
for文で実行される文には任意の文を記述できますので、別のfor文を記述するといったことも可能です。次の例を見て下さい。
for (var i = 0; i < 2; i++){ for (var j = 0; j < 2; j++){ alert("i = " + i + ",j = " + j); } }
この例では外側のfor文のブロック内に別のfor文を記述しています。ではこのサンプルがどのように実行されるのか確認してみます。
1)変数「i」を宣言し、0で初期化する 2)外側の条件式を評価し繰り返しを実行する 3)変数「j」を宣言し、0で初期化する 4)内側の条件式を評価し繰り返しを実行する 5)「i = 0,j = 0」を出力 6)変化式によって変数「j」の値を1にする 7)内側の条件式を評価し繰り返しを実行する 8)「i = 0,j = 1」を出力 9)変化式によって変数「j」の値を2にする 10)内側の条件式を評価し内側のfor文を終了する 11)変化式によって変数「i」の値を1にする 12)外側の条件式を評価し繰り返しを実行する 13)変数「j」を宣言し、0で初期化する 14)内側の条件式を評価し繰り返しを実行する 15)「i = 1,j = 0」を出力 16)変化式によって変数「j」の値を1にする 17)内側の条件式を評価し繰り返しを実行する 18)「i = 1,j = 1」を出力 19)変化式によって変数「j」の値を2にする 20)内側の条件式を評価し内側のfor文を終了する 21)変化式によって変数「i」の値を2にする 22)外側の条件式を評価し外側のfor文を終了する
2)から11)までが外側のfor文の1回目の繰り返し処理、12)から21)までが外側のfor文の2回目の繰り返し処理となります。そして外側のfor文が1回繰り替えされるたびに内側のfor文の繰り返しが一通り行われることになります。
このようにfor文の中に別のfor文を記述するのは2つの変数の値をそれぞれ範囲内で変化させ、総当りの組み合わせで処理を行いたい場合に使われます。
サンプルコード
では簡単なサンプルで試してみます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>JavaScript テスト</title> </head> <body> <script type="text/javascript" src="./js/script5_1.js"> </script> </body> </html>
document.write("<p>"); for (var i = 1; i <= 9; i++){ for (var j = 1; j <= 9; j++){ document.write(i + " × " + j + " = " + (i * j) + "<br />"); } } document.write("</p>");
上記を実際にブラウザ見てみると次のように表示されます。
九九を総当りで表示しています。
( Written by Tatsuo Ikura )