前回 for 文を色々と試しながらまとめましたが、もう少し試してみたい事もあるので 続きです。
for 文のネスト
ex.1
for (var i = 1; i < 10; i++) {
document.write('<br>', i + 'の段', '<br>');
for (var j = 1; j < 10; j++) {
document.write (i + ' × ' + j + ' = ' + i * j, '<br>');
}
}
document.write('<br>', i + 'の段', '<br>');
for (var j = 1; j < 10; j++) {
document.write (i + ' × ' + j + ' = ' + i * j, '<br>');
}
}
ex.1 の実行結果 |
for 文の繰り返し処理に for 文を書いて、2重のループにする事ができます。ex.1 では 前回のまとめで作った 掛け算のループを 2重のループに改造して、1の段から 9の段まで表示するようにしてみました。
カウンタ変数 i は ◯の段を 1~9 まで繰り返します。i のループを 1回処理する毎に 内側のループ(カウンタ変数 j のループ)が、i の段 の掛け算を 1~9 まで行います。
j のループが終了すると、i が 1増えて、次の段の掛け算が 行われ、9の段まで行うと全ての処理が終了します。ややこしく見えますが、やっている事は単純です。
for 文では 複数の変数の値を増減させながら ループする事もできます。この場合 扱う変数を , (カンマ)区切りで 書きます。
for (var i=0, j=2; i<9; ++i, j*=2) {
num[i] = j;
}
カウンタ変数 i は ◯の段を 1~9 まで繰り返します。i のループを 1回処理する毎に 内側のループ(カウンタ変数 j のループ)が、i の段 の掛け算を 1~9 まで行います。
j のループが終了すると、i が 1増えて、次の段の掛け算が 行われ、9の段まで行うと全ての処理が終了します。ややこしく見えますが、やっている事は単純です。
複数の変数の値を増減させる for 文
ex.2
var num = new Array();for (var i=0, j=2; i<9; ++i, j*=2) {
num[i] = j;
}
document.write (num);
繰り返し条件を書く ( ) 内に 初期値と ループ1回毎の増減値を ,(カンマ)で区切って書きます。
今の所 この方法以外ではできない処理のサンプルが思いつきませんが、覚えておくと役に立つ時があるかも知れません。ex.2 は次のように書いてもとりあえず同じ結果になりました。
今の所 この方法以外ではできない処理のサンプルが思いつきませんが、覚えておくと役に立つ時があるかも知れません。ex.2 は次のように書いてもとりあえず同じ結果になりました。
var j = 2;
for (var i=0; i<9; ++i) {
num[i] = j;
j *= 2;
}
document.write (num);
for 文についてはひとまず完了です。次回のまとめは、繰り返し処理の続きで、while 文にしようかと思います。
よろしければ こちらもどうぞ。