- HOME
- JavaScript入門
- for文
このページと次のページでは繰り返し文を解説していきます。 繰り返しはfor文とwhile文がありますが、このページではfor文を説明します。 for文は繰り返し回数が判っている場合に使います。
for文の記述の仕方
for文の書き方は以下のようになります。
- for ( var i = 初期値 ; 繰り返し条件 ; i++ ){ 処理 }
- 条件を満たしている間、処理を繰り返します。
for文のカッコ内は3つの区分になっています。最初の区分は変数「i」を宣言して、初期値を代入しています。 繰り返し文では「i」を用いるのが一般的です。次の区分とは半角セミコロン「;」で区切ります。
2つ目の区分は繰り返し条件を指定します。「i」と数値を比較するような条件を記述します。そしてまた半角セミコロンで区切ります。
3つ目の区分は、iの値の増減を記述します。通常は「i++」とします。for文の中カッコ内の処理を1回繰り返すごとに、「i」の値が1つ大きくなっていきます。
以下のサンプルをご覧ください。 i の初期値が0で、10未満の間(つまり10回)処理を繰り返します。
<script> for ( var i = 0 ; i < 10 ; i++ ){ document.write("繰り返し文です。<br>"); } </script>
サンプル(別窓)
for文と配列の組み合わせ
for文と配列を組み合わせると効率よく処理を行なえます。簡単な表を作ってみることにしましょう。
<script> var river = new Array( "日本の川の長さランキング", "信濃川", "利根川", "石狩川", "天塩川", "北上川" ); document.write("<table>"); for ( var i = 1 ; i <= 5 ; i++ ){ document.write("<tr><td>" + i + "位</td><td>" + river[i] + "</td></tr>") } document.write("</table>"); </script>
サンプル(別窓)
上記スクリプトの解説
var river = new Array( … );
最初に配列riverを宣言し、日本の河川の長さのランキング順に配列を作りました。しかし一番最初(river[0])にはダミーを入れています。別にどんな文字列でも、空の文字列でも構いません。for文の初期値を1から始めるようにしているので、配列の最初の文字列は表示されません。
document.write("<table>");
HTMLのテーブルを作成します。
for ( var i = 1 ; i <= 5 ; i++ ){ }
そしてfor文を使ってテーブルの各行を作っていきます。繰り返しは1~5の5回です。
document.write("<tr><td>" + i + "位</td><td>" + river[i] + "</td></tr>"
行の最初のセルには「 i + 位」を表示します。順位の数値にそのまま i を使ったので、0ではなく1から始めたわけです。
2つ目のセルにはriver[i]を表示しています。i が1なら「信濃川」,3なら「石狩川」が表示されるようになります。
document.write("</table>");
最後にテーブルを閉じます。
continueとbreak
繰り返し文では、繰り返し処理から抜けるbreakと、繰り返し処理の先頭に戻るcontinueというものがあります。
- break
- 繰り返し文から抜け出します。
- continue
- 以下の処理をスルーして、繰り返し文の先頭に戻ります。
サンプルを見てみることにしましょう。
<script> for ( var i = 1 ; i <= 10 ; i++ ){ if(i == 4 || i == 9 ) continue; if(i == 7) break; document.write( i + "号室" + "<br>"); } </script>
サンプル(別窓)
上のスクリプトでは1号室から10号室まで順番に書き出そうとしています。
部屋番号というのは、たまに4や9が付く号数を飛ばしていることがあります。このスクリプトでも i の数値が4または9(if文の中の縦線2本はORという意味)の時、continueで以下の処理をスルーして次の繰り返しに入っています。サンプルを見ると4号室が表示されていないと思います。
また、このアパートは6号室までしかなかったのでしょう。7号室以降はbreakでfor文から抜け出しているので、書き出されていないことがわかります。