for文の終了時の処理(for...else)

広告

「for」文はシーケンス型のオブジェクトを変数に代入しながら繰り返しを行いますが、繰り返しが終了した時に実行される処理を記述することも可能です。書式は次のようになっています。

for 変数 in オブジェクト:
  実行する処理1
  実行する処理2
else:
  実行する処理1
  実行する処理2

「while」文の場合と同じく「for」文が終了する時に「else」文が記述されていた場合は「else」文のブロック内の処理が実行されます。「else」文のブロックは一度実行された後で「for」文全体が終了します。

次のような例で考えてみます。

for num in [4, 3, 12]:
  print "num = " + str(num)
else:
  print "End"

上記ではリスト型のオブジェクト[4, 3, 12]から要素を順に取り出し繰り返し処理を行います。全ての要素を取り出し終わったら「else」文のブロック内の「print "End"」が実行されます。

なお「while」文の場合と同じく、繰り返しの中で「break」文によって繰り返し処理が終了した場合には「else」文のブロック内の処理は実行されません。

サンプルコード

では実際に試してみます。

#coding: UTF-8

for num in [4, 3, 12]:
  print "num = " + str(num)
else:
  print "End"

上記を「test4-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

for文の終了時の処理(for...else)

( Written by Tatsuo Ikura )