next up previous
Next: リスト Up: プログラミング入門 Previous: while 文

   
2 重のループ

ループの中に別のループを書くことも出来ます. 例として, セクション 4.4 の九九の例(while の例 4)を改良してみましょ う.

プログラムの構造は,

max = 9
dan = 1
while dan <= max:
    「各段を 1 行に印字し改行する」
     dan = dan + 1
となります. 「各段を 1 行に印字し改行する」の部分は, もちろん Python プログラムではなく, 単なる説明です. この部分には前の例が使えます.

# 2 重ループの例 1
# 九九を印字
max = 9
dan = 1
while dan <= max:
    i = 1
    while i <= max:
        print i * dan,
        i = i + 1
    print
    dan = dan + 1
# プログラム終り
dan の値が 1 から max までのループが外側にあり, このそれぞれ dan の値に 対して, i の値が 1 から max のループが行なわれます. つまり, dan = 1 の時に, i を 1 にして, i * dan を出力し, i の値を 1 増やして 2 にし, i * dan を出力し, ... , i の値を 1 増やして max にし, i * dan の値を 出力し, i の値を 1 増やして max + 1 にします. こうなると, 条件 i <= max が満たされないので, 内側のループ(2 段に字下げされた 部分の実行が一旦終り, print で改行し, dan の値を 1 増やして 2 に します. この dan の値 2 にたいして, i の値を再び 1 にして,..., という 作業を繰り返していくわけです. dan の値が max + 1 になった段階で, 外側のループが終了し, プログラムも終了します.



Toru Sasaki
2000-08-30