Pythonでプログラムを実行するとき、異なる条件で処理を分けたいときがでてきます
そんなときは条件分岐をさせることで実現することができます
このページではPythonで条件分岐を実行させる命令文ifについて解説していきます
条件分岐とは?
プログラムは基本ソースコードの上から順番に実行されます
そのため何度実行しても同じ処理が行われます
条件分岐は、特定の条件のときに処理を変えることができるものでプログラミングの中ではどの言語でも分岐をするための文法が用意されています
Pythonでもif文やSwitch文が用意されていています
このページでは主に2通りで分岐を行うif文について解説していきます
if文の基本
基本的な書き方
if文は、もし○○だったらxxの処理を実施する
といった流れのプログラム文法になります
この場合条件式が正しければ処理Aを実行します
逆に正しくなければ処理Aは実行されません
ブロック文の考え方
またPythonの場合if文の中身はひとつインデントを下げて記載します
このような記載の仕方をブロック文と呼びます
実際にプログラムコードを書いていくときは上のような形でタブでインデントを下げて書いていきます
さらにブロック文を記載するときは、もう一段下げます
逆にブロック文を終了する場合はインデントを戻して続きの処理を記載するようにします
if文の条件に使えるもの
if文の条件式として使えるものを紹介していきます
主に6パターンの組み合わせでコードを書いていくことができます
- A == B : AとBが等しい
- A != B : AとBが等しくない
- A < B : AよりBが大きい
- A <= B : AはBと等しいもしくは大きい
- A > B : AよりBは小さい
- A >= B : AはBと等しいもしくは小さい
条件分岐の基本的な使い方
ifの使い方
ここからは条件文ifの使い方について紹介していきます
if 条件式:
処理A
実際に動かしてみましょう
a = 10
b = 20
if a < b:
print("処理A")
print("終了")
条件式としてa < bを設定しました
変数aより変数bの方が大きい場合このif文の条件はTrueとなりprintの処理A部分が実行されます
逆に条件式を満たさない場合はをみてみましょう
a = 30
b = 20
if a < b:
print("処理A")
print("終了")
逆に変数aより変数bの方が小さい場合はif文の条件はFalseとなりprintの処理Aは実行されません
elifの使い方
前の章ではifの基本的な使い方を紹介しましたが、最初のif文には一致しなかったとしても違う条件で条件式に合致するかどうかを調べたいとき、elifを使用します
主にif文を使って複数の条件で処理を変えたいときとかに使います
if 条件式A :
処理A
elif 条件式B :
処理B
条件式AはFalseだが、条件式BがTrueの場合処理Bを実行します
もちろん条件式AがTrueのときは処理Aが実行され、条件式BがTrueだったとしても処理Bが実行されることはありません
では実際に動かしてみましょう
a = 30
b = 20
c = 40
if a < b:
print("処理A")
elif a < c:
print("処理B")
elseの使い方
elseはif文の最後に記載する命令文で、ifやelifの条件にすべて合致しなかったときの処理を記載したいときに使用します
if 条件式A :
処理A
elif 条件式B :
処理B
else:
処理C
上の場合、ifの条件式Aと条件式BがFalseの場合に実行されます
では、実際にうごかしてみましょう
a = 50
b = 20
c = 40
if a < b:
print("処理A")
elif a < c:
print("処理B")
else:
print("処理C")
条件式を複数条件にする
条件式は複数もたせることもできます
if 条件式A and 条件式B:
処理A
if 条件式A or 条件式B:
処理B
ifの条件式は複数条件を設定することができます
条件式同士はandやorを使用します
andは両サイドの条件式が両方ともTrueになったらTrueでそれ以外はFalseになります
orは両サイドのどちらかの条件式がTrueになったらTrueになり、それ以外がFalseになります
では実際に動かしてみましょう
andで成立する条件を例にみてみましょう
a = 10
b = 20
c = 40
if a < b and a < c:
print("処理A")
else:
print("処理B")
変数aの値は10なので、a<bかつa<cの条件に合致します
実際の動作結果でもifの条件式2つの両方ともTrueになるため処理Aが実行されます
次にFalseになる場合をみてみましょう
a = 50
b = 20
c = 40
if a < b and a < c:
print("処理A")
else:
print("処理B")
この場合、変数aの値は両方とも条件に合致しないので処理Bが実行されます
if文の中にif文を追加する
if文の中にさらにif文を追加することもできます
追加するときは、ブロック文の書き方にならってインデントを調整します
if 条件式A:
if 条件式B:
処理A
では実際に動かしてみましょう
a = 10
b = 20
c = 40
if a < b:
if a < c:
print("処理A")
上のプログラムコードのようにif文の中にif文を追加する場合はさらにインデントを下げます
if 条件式:
処理A