よろずやIT
プログラミング

条件分岐(if文)とは?if・elif・elseの書き方をPythonで図解

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

プログラミングのイラスト

結論: 条件分岐(if文)は、条件によって、実行する処理を切り替える仕組みです。Pythonでは、if・elif・elseで書きます。条件は上から順に確認され、最初に成り立ったものだけが実行されます。つまずきやすいのは、=と==の違い、elifの順序、インデント、input()が文字列である点です。

条件分岐とは

「雨なら傘を持つ。そうでなければ、持たない」のように、状況によって、動きを変えるのが、条件分岐です。プログラムでは、**条件が成り立つか(True)、成り立たないか(False)**で、実行する処理を選びます。

基本の形:if と else

score = 75
if score >= 60:
    print("合格")
else:
    print("不合格")

結果は、「合格」と表示されます。

3つ以上に分ける:elif

80点以上、60点以上、それ以外で、A・B・Cに分ける流れと、Pythonのコードを示した図解

score = 75
if score >= 80:
    print("A")
elif score >= 60:
    print("B")
else:
    print("C")

結果は、「B」と表示されます。

  1. score >= 80 を確認する → 75点なので、成り立たない
  2. score >= 60 を確認する → 成り立つ → 「B」を表示して、終わる
  3. else は、実行されない

上から順に確認し、最初に成り立ったものだけが実行されます。

条件に使う記号

比較演算子

記号 意味 例
== 等しい score == 80
!= 等しくない score != 0
> より大きい score > 60
>= 以上 score >= 60
< より小さい score < 60
<= 以下 score <= 60

条件を組み合わせる

記号 意味 例
and かつ(両方が成り立つ) age >= 18 and has_id
or または(どちらかが成り立つ) day == "土" or day == "日"
not でない(反対にする) not is_member
age = 20
if age >= 18 and age < 65:
    print("対象です")

変数の基本は、変数とはをご覧ください。

よくあるつまずき

イコールと二重イコールの違い、elifの順序、インデント、入力が文字列であることの4つのつまずきを示した図解

① = と == の違い

score = 80        # 代入
if score == 80:   # 比較
    print("ちょうど80点")

② elifの順序

広い条件を先に書くと、後ろの条件に届きません。

score = 85
if score >= 60:      # 85点もここで成り立つ
    print("B")
elif score >= 80:    # ここには来ない
    print("A")

85点でも「B」になります。厳しい条件(80点以上)から、順に書きます。

③ インデント(字下げ)

字下げした行が、ifの中の処理になります。

if score >= 60:
    print("合格")     # ifの中(条件が成り立つ時だけ)
print("終了")          # ifの外(いつも実行される)

字下げの幅は、半角スペース4つで揃えるのが一般的です。

④ input() は文字列

input() で受け取った値は、数字に見えても文字列です。

score = int(input("点数を入力:"))

int() で、数値に変換してから、比べます。変換しないと、意図しない結果になることがあります。

JavaScriptでは

考え方は、同じです。書き方だけが違います。

const score = 75;
if (score >= 80) {
  console.log("A");
} else if (score >= 60) {
  console.log("B");
} else {
  console.log("C");
}

Excelの IF関数との関係

ExcelのIF関数も、同じ考え方です。「条件が成り立てば、A。そうでなければ、B」と切り替えます。IF関数の使い方も、あわせてご覧ください。

思い通りに動かない時の確認

症状 原因 対処
エラーになる コロンの付け忘れ、字下げのずれ : と、インデントを確認する
条件が成り立たない = と == の取り違え 比較は == にする
意図しない分岐になる elifの順序 厳しい条件から書く
数の比較が、おかしい 文字列のまま比べている int() で変換する
どこを通っているか不明 値が分からない print で、値を表示する(デバッグとは)

まとめ

関連記事:ループ(繰り返し)とは、変数とは、Pythonとは、関数とは、例外処理とは

PRPython イラストで学ぶIT入門 Python初心者と新人SEのための実務につながる基礎学習ガイド【電子書籍】[ 高市 勇気 ]

Python イラストで学ぶIT入門 Python初心者と新人SEのための実務につながる基礎学習ガイド【電子書籍】[ 高市 勇気 ]

¥990

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.ifとelifとelseは、どう違いますか?

A.ifは『最初の条件』、elifは『それ以外で、もう1つの条件』、elseは『どの条件にも当てはまらない場合』です。上から順に確認され、最初に成り立ったものの処理だけが実行されます。elifは、何個でも書けます。elseは、なくても構いません。

Q.=と==は、何が違いますか?

A.=は、変数に値を入れる『代入』です。==は、2つの値が等しいかを調べる『比較』です。条件の中で、『等しいか』を調べたい時は、==を使います。Pythonでは、if文の条件に=を書くと、エラーになります。

Q.elifの順序を間違えると、どうなりますか?

A.上から順に判定するため、広い条件を先に書くと、後ろの条件が使われなくなります。たとえば、『60点以上』を先に書くと、85点でも『60点以上』に当てはまり、『80点以上』の処理に届きません。厳しい条件から、順に書くのが基本です。

Q.インデント(字下げ)は、必ず必要ですか?

A.Pythonでは、必須です。字下げした行が、ifの中の処理として扱われます。字下げがないと、エラーになったり、意図と違う動きになったりします。通常は、半角スペース4つで揃えます。

Q.入力した数字を、条件で比べたら、おかしな結果になりました。

A.input()で受け取った値は、数字に見えても『文字列』です。数として比べるには、int()などで数値に変換します。たとえば、score = int(input()) のように書きます。文字列のまま比べると、意図しない結果になることがあります。

関連記事

プログラミング用語解説

関数の引数とは?位置引数・キーワード引数・デフォルト値をPythonで解説

引数とは、関数に渡す値のことです。位置引数・キーワード引数・デフォルト値の違い、引数の数が合わない時のエラー、デフォルト値にリストを使ってはいけない理由を、Pythonの短いコードと図解で解説します。

プログラミング用語解説

スコープ(変数の有効範囲)とは?ローカル変数・グローバル変数をPythonで解説

スコープとは、変数が使える範囲のことです。関数の中のローカル変数と、外のグローバル変数の違い、NameErrorやUnboundLocalErrorの原因と直し方、引数と戻り値で受け渡す書き方を、Pythonの短いコードと図解で解説します。

プログラミング用語解説

辞書(dict)型とは?キーと値で管理する書き方をPythonで解説

辞書(dict)型とは、キーと値のペアでデータを管理する入れ物です。リストとの違い、取り出し方、get()でKeyErrorを防ぐ方法、追加・更新・削除、for文での繰り返しを、Pythonの短いコードと図解で解説します。

プログラミング用語解説

再帰(再帰関数)とは?自分自身を呼ぶ仕組みを、Pythonと図解で解説

再帰とは、関数が自分自身を呼び出す書き方です。必要な2つの条件(終了条件と、問題を小さくすること)、階乗の動き、RecursionErrorが出る原因、ループとの使い分けを、Pythonの短いコードと図解で解説します。

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。