for文

更新日:2018.06.22
  1. HOME
  2. JavaScript入門
  3. 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文から抜け出しているので、書き出されていないことがわかります。