for文
ここでは繰り返し文を解説していきます。 繰り返しはfor文とwhile文といったものがありますが、このページではfor文を説明します。 for文は繰り返し回数が判っている場合に使います。
for文のサンプルスクリプト
ではHTMLファイルを作ってbody内に以下のように記入なさって下さい。
<script>
for (var i=1 ; i<=10 ; i++){
document.write("繰り返し文です。<br>");
}
</script>
サンプル(別窓)
サンプルを見てみると、「繰り返し文です。」と言う文字が10行表示されたと思います。 これはfor文で同じ処理を10回繰り返したからです。 では詳しく見ることにしましょう。
for文の説明
上記のスクリプトにあるように、繰り返しを指定するのはforを用います。 中括弧内の処理を繰り返すことになります。 forの後の小括弧内に、繰り返し方法を指定します。カッコ内は3つの区分があります。
最初の区分では、「i」という変数に1を代入しています。 繰り返しの指定では「i」を用いるのが普通ですが、他の文字でも構いません。 そして半角セミコロン「;」で区切ります。
次の区分では、繰り返しの条件を指定します。 上記の例では、iの値が10以下の場合に繰り返すよう指定しています。 そしてまた半角セミコロンで区切ります。
最後の区分は、iの値の増減を決めています。 通常は上記のようにi++にします。 この結果for文内の処理を1回繰り返すごとにiの値が1プラスされていきます。 iの値が1から始まって、10になるまで(つまり10回)繰り返されることになります。 以下にまとめてみます。
- for ( var i = 初期値; 繰り返し条件; i++ ){ 処理 }
- 条件を満たしている間、処理を繰り返します。
for文の意味は分かったでしょうか? しかし上記のようにただ同じ文字を繰り返すのも能が無いですよね。 そこで登場するのが配列です。 for文は配列と組み合わせると非常に効率的に処理を行えます。
配列との組み合わせ
for文と配列を組み合わせたスクリプトはよく出てきます。 以下に、簡単に表を作る方法を載せてみる事にしましょう。
var rank=1;
var mnt = new Array(
"富士山",
"白根山",
"奥穂高岳",
"間ノ岳",
"槍ヶ岳"
);
document.write('<table border="3">');
for (var i=0 ; i<=4 ; i++){
document.write('<tr>');
document.write('<td>'+rank+'位</td>');
document.write('<td>'+mnt[i]+'</td>');
document.write('</tr>');
rank++;
}
document.write('</table>');
サンプル(別窓)
上記サンプルは日本の山を標高順にした表を書き出すスクリプトです。 あらかじめ配列mntに山の名前を入れておき、 for文で書き出します。 配列の連番は0から始まるので、 for文もそれにあわせて0~4までの間で繰り返すようにしています。
別にrankという変数を使って順位の部分を書き出しています。 for文の最後にrank++を入れて、一回処理されるごとに1ずつ増やしているわけです。 わざわざ変数rankを指定しなくてもiを使えばいいのですが、 ちょっと細工がいるので今回はこのようにしました。
continueとbreak
繰り返し文では、繰り返し処理から抜けるbreakと、 繰り返し処理の先頭に戻るcontinueというものがあります。 実際にソースを見てみると、分かりやすいと思います。
for(var i=1 ; i<=10 ; i++){
if(i==3) continue;
if(i==7) break;
document.write(i+"回目の繰り返しです!<br>");
}
サンプル(別窓)
サンプルを見てみると、3回目の所が抜けていることに気付かれるでしょう。 上記のソースで、もしiが3の時はcontinue、つまり‘先頭に戻りなさい’という命令が入っているからです。 また、for文の条件を見てみるとiが10になるまで繰り返すようになっていますが、 実際には6までしか表示されていません。 それはiが7の時break(繰り返し文から抜けなさい)という命令が実行されるからなんです。
- break
- 繰り返し文から抜け出します。
- continue
- 以下の処理をスルーして、繰り返し文の先頭に戻ります。
continueやbreakは結構使うことがあります。 具体例はまた別の時に述べることにしますが、 今はこんな命令があるということを知ってもらえれば十分だと思います。
さて、for文は繰り返し回数があらかじめ分かっている場合に使うことができます。 しかし、繰り返し回数が分からない場合はどうすればいいでしょうか? その場合は、次頁に出てくるwhile文を用いることができます。