プログラムの構造は,
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 になった段階で,
外側のループが終了し, プログラムも終了します.