プログラムを作る中でもいろいろな条件に応じて処理を変更していくことが必要になります。このような処理を“条件分岐”といいます。今回は条件分岐の基本となる“if文”の基礎をマスターしていきましょう!



条件分岐とは

条件分岐とはある条件を満たすかどうかにより実行される処理を変えるという制御になります。条件分岐の様子を下記の図で示します。このような図を”フローチャート”といいます。

条件1を満たす(True)場合は処理Aを実行します。条件1を満たさない(False)場合は条件2に進みます。条件2がTrueだと処理Bを実行、Falseだと処理Cを実行します。
if文では各条件の判定にTrueかFalseの”Bool型”が利用されます。そしてTrueかFalseにより処理を変更することができます。

if文の使い方


if (条件1):
    処理A
elif (条件2):
    処理B
else (条件1,2以外すべて):
    処理C

最初の条件式を“if”, それ以降の条件式を“elif”で示して、Trueの場合のそれぞれの処理を書きます。それ以外の場合は“else”で処理を設定します。それぞれの条件式は“()”で囲んで、“:”の後にそれぞれの処理を書きます。

まずは条件が1つしかない場合の例を示します。

x=1
y=2
if (x<y):
    print(x)
1


この例ではxがyよりも小さい場合はxを表示します。条件が1つしかないのでifのみです。1が表示されます。

次にもう少し条件を増やした下記のフローを作ってみます。

条件1 Num==1:
    処理A ‘One’を表示
条件2 Num==2:
    処理B: ‘Two’を表示
条件3 その他:
    処理C ‘Others’を表示

実際にPythonでコードを書くとこのようになります。

if (Num==1):
    print('One')
elif (Num==2):
    print('Two')
else:
    print('Others')

ではこのコードを使ってみましょう。

Num=1
if (Num==1):
    print('One')
elif (Num==2):
    print('Two')
else:
    print('Others')
One
Num=2
if (Num==1):
    print('One')
elif (Num==2):
    print('Two')
else:
    print('Others')
Two
Num=3
if (Num==1):
    print('One')
elif (Num==2):
    print('Two')
else:
    print('Others')
Others

Numにそれぞれ1から3を設定してif文を実行すると、Numの値に応じて出力されるコメントがOne, Two, Othersと変化しました。

この例では条件を2つ示しました。もっと条件を設定したい場合はelifで条件式と処理を何個でも追加することが可能です。



インデント (字下げ)

2つ目の例をみてお気づきかもしれませんが、if, elif, elseの後に続く各処理がインデント (字下げ) されています。このようにインデントすることで各処理の”コードブロック (複文)”の深さ揃えます。

Pythonではインデントが重要な意味を持つので注意してください。インデントは通常4つの半角になります。Pythonに対応したエディターを使用するとif文を入力すると自動的にインデントされます。

ネスト (入れ子)

もしif文の条件の中にさらにif文を追加する場合は、インデントをさらに深くします。これをネスト (入れ子)といいます。

if (x<y):
    print(x)
  if (x==1):
      print('One')

この例ではxとyの大小を比較してTrueの場合xを表示します。さらにxが1の場合はOneを表示します。このようにPythonではインデントとネストを使ってコードブロックの深さを明示する必要があります。

今回はif文でしたが、Pythonでは様々な制御文 (statements) でインデントやネストを用いてコードブロックを書く必要があります。

まとめ

今回は条件分岐の基本となる“if文”の使い方について見てきました。条件分岐はプログラムを作成する上で必ず必要になるでの、しっかりとマスターしておきましょう!

  •  条件分岐とは
  •  if文の使い方
  •  インデント (字下げ)
  •  ネスト (入れ子)