複数の条件分岐(if...elif...else)

広告

「if」文では単独の条件分岐だけではなく複数の条件分岐を使って処理を分けることが出来ます。次の書式を使用します。

if 条件式1:
  条件式1が真の時に実行する処理
elif 条件式2:
  条件式1が偽で条件式2が真の時に実行する処理
elif 条件式3:
  条件式1及び条件式2が偽で条件式3が真の時に実行する処理
else:
  全ての条件式が偽の時に実行する処理

評価は上から順に行われます。まず「if」文の条件式を評価し、真であれば「if」文のブロック内の処理を実行し「if」文を終了します。「if」文の条件式が偽であった場合に次の「elif」文の条件式を評価し、真であれば「elif」文のブロック内の処理を実行し「if」文を終了します。「elif」文の数だけ同じ事を実行し全ての条件式が偽だった場合に「else」文のブロック内の処理を実行します。

「elif」文は必要な数だけ記述することが出来ます。また「else」文は必要無ければ省略可能です。

注意する点としてはいずれかの条件式が真となった時にはそれ以降の「elif」文や「else」文は評価されないということです。

例えば次のように使用します。

domain = "kr"

if domain == "jp":
  print u"日本です"
elif domain == "kr":
  print u"韓国です"
elif domain == "cn":
  print u"中国です"
else:
  print u"その他の国です"

今回の例では変数「domain」に代入された文字列を条件式で比較していきます。真となったブロックの処理を実行して処理を終了します。

サンプルコード

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

#coding: UTF-8

domain = "kr"

print domain + u"ドメインは",
if domain == "jp":
  print u"日本です"
elif domain == "kr":
  print u"韓国です"
elif domain == "cn":
  print u"中国です"
else:
  print u"その他の国です"

domain = "com"

print domain + u"ドメインは",
if domain == "jp":
  print u"日本です"
elif domain == "kr":
  print u"韓国です"
elif domain == "cn":
  print u"中国です"
else:
  print u"その他の国です"

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

複数の条件分岐(if...elif...else)

( Written by Tatsuo Ikura )