next up previous contents
Next: Sample Program 6a Up: 繰り返し、二つ以上の条件式 Previous: Sample Program 5b   Contents

2つ以上のfor nextを使った繰り返し

前節では、forとnextを用いて、単純な繰り返し作業を演習しました。 ここでは、この繰り返しを入れ篭にして2つ導入することを考えてみましょう。
100 for i = 1 to 100
110   for j = 1 to 100
120      print i,j
130   next j
140 next i
990 end
上の例では、120行目は何回実行されるでしょうか? 順に追ってみますと、まず100行目で、iに1を代入し て110行目に向かいます。すると別のforがあるので、 jを1として120行目を実行します。120行目でこの時印字されるのは、  1  1 のはずです。 印字した後130行目でnext jを迎えます。このnext jは、110行目の for jと対になっているため、110行目に戻って今度は、jに2を代入して120行目に向かいます。 この後も同様に110行目と130行目の間で繰り返しが行われます。そしてついにjが100になったら 内側のforとnextの繰り返しが終わり、140目にさしかかります。140行目は、next iですので、これと 対になっている100 行目のfor iに飛ばなければなりません。この時、iに2が代入され110行目へ向かいます。 さて120行目は何回実行されるでしょうか?

二つ以上のfor nextを用いる際に注意する点は、入れ篭の形をきちんと維持できているかどうかです。 以下の様な例は、2つのfor nextが交差してしまい、プログラムが動作しません。

100 for i = 1 to 100
110   for j = 1 to 100
120      print i,j
130 next i
140   next j
990 end
この例は、上の例とほぼ同一ですが、nextの引数iとjが入れ替わっています。 このため、繰り返しがうまく行かずプログラムを実行することが出来ません。

尚、入れ篭のような形を書く場合は、内側の対を字下げする等して見やすさに 工夫が必要です。読みにくければプログラムを修正するのに後で苦労します。



Takeyoshi Nagai 2013-10-07