条件分岐とは?プログラミング初心者向けにif文をわかりやすく解説

プログラミング

はじめに

プログラミングを勉強すると、必ずといってよいほど登場するのが「条件分岐」です。

まず、条件分岐って何?」
「if文は何をしているの?」
「elseやelifの違いが分からない」

という人も多いのではないでしょうか。

条件分岐とは、簡単にいうと、

「条件によって、実行する処理を変える仕組み」

のことです。

例えば、

「テストの点数が60点以上なら合格、60点未満なら不合格」

というような判断も条件分岐です。

この記事では、プログラミング初心者や高校生向けに、条件分岐の意味やif文の使い方をPythonのサンプルコードを使ってわかりやすく解説します。

条件分岐とは

条件分岐とは、ある条件が成立するかどうかによって、プログラムの処理を変更する仕組みです。

私たちも普段の生活の中で、無意識に条件分岐を行っています。

例えば、

「雨が降っていたら傘を持っていく」

という行動を考えてみます。

これは、

もし雨が降っている
    ↓
傘を持っていく

という条件分岐です。

反対に、

雨が降っていない
    ↓
傘を持っていかない

という処理になります。

プログラムでも、このような判断を行うことができます。

プログラミングで条件分岐が必要な理由

すべての処理を毎回同じように実行するだけでは、実用的なプログラムを作ることはできません。

例えば、ログイン画面を考えてみましょう。

ユーザーが入力したパスワードが正しければ、

ログイン成功

と表示します。

間違っていれば、

パスワードが違います

と表示します。

つまり、

パスワードが正しい
    ↓
ログイン成功

パスワードが間違っている
    ↓
エラー表示

という条件分岐が必要です。

Webサイト、ゲーム、スマートフォンアプリ、業務システムなど、ほとんどのプログラムで条件分岐が使用されています。

Pythonではif文を使う

Pythonでは、条件分岐を行うために「if文」を使用します。

基本的な書き方は次のとおりです。

if 条件:
    条件が成立したときの処理

例えば、

score = 80

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

というプログラムを考えてみましょう。

変数scoreには80が入っています。

そして、

score >= 60

という条件を確認しています。

これは、

「scoreは60以上ですか?」

という意味です。

80は60以上なので条件が成立し、

合格

と表示されます。

ifとはどのような意味?

英語の「if」には、

「もし〜なら」

という意味があります。

そのため、

if score >= 60:

は、

もしscoreが60以上なら

という意味になります。

プログラムを読むときも、

「if = もし」

と考えると理解しやすくなります。

比較演算子とは

条件分岐では、「比較演算子」という記号をよく使用します。

例えば、

score >= 60

の「>=」も比較演算子です。

よく使う比較演算子には、次のようなものがあります。

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

例えば、

age >= 18

なら、

「ageが18以上か」

を調べています。

「=」と「==」の違いに注意

初心者が間違えやすいのが、

=

と

==

の違いです。

Pythonでは、

score = 80

のように「=」を使う場合は、値を変数に代入しています。

一方、

score == 80

は、

「scoreが80と等しいか」

を比較しています。

つまり、

=   値を入れる
==  値が同じか調べる

という違いがあります。

elseを使った条件分岐

ifだけではなく、条件が成立しなかった場合の処理も指定できます。

そのときに使用するのが「else」です。

例えば、

score = 50

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

このプログラムでは、scoreは50です。

条件は、

score >= 60

なので成立しません。

そのためelse側の処理が実行され、

不合格

と表示されます。

elseは、

「それ以外の場合」

と考えると分かりやすいでしょう。

ifとelseの処理の流れ

先ほどのプログラムは、次のような流れになります。

scoreは60以上?
       ↓
 ┌─────┴─────┐
はい             いいえ
 ↓                ↓
合格             不合格

このように、条件によって処理が2つに分かれるのが条件分岐です。

elifとは

条件が2つだけではなく、3つ以上ある場合もあります。

例えば、テスト結果を、

90点以上なら「A」

70点以上なら「B」

60点以上なら「C」

60点未満なら「D」

と判定したい場合を考えてみます。

Pythonでは「elif」を使用します。

score = 75

if score >= 90:
    print("A")
elif score >= 70:
    print("B")
elif score >= 60:
    print("C")
else:
    print("D")

scoreには75が入っているので、

B

と表示されます。

elifは、

「最初の条件ではなかったが、こちらの条件ならどうか」

という意味で使います。

条件は上から順番に判定される

if文で重要なのが、条件は上から順番に判定されるということです。

例えば、

score = 95

if score >= 60:
    print("C")
elif score >= 70:
    print("B")
elif score >= 90:
    print("A")

という書き方をすると、95点であっても、

C

と表示されてしまいます。

最初の、

score >= 60

という条件が成立した時点で、その後のelifは判定されないからです。

そのため、

if score >= 90:
    print("A")
elif score >= 70:
    print("B")
elif score >= 60:
    print("C")

のように、条件の順番を考える必要があります。

AND条件とは

複数の条件が両方成立しているかを確認することもできます。

Pythonでは「and」を使用します。

例えば、

age = 18
has_ticket = True

if age >= 18 and has_ticket:
    print("入場できます")

この場合、

「18歳以上」

かつ、

「チケットを持っている」

という2つの条件が両方成立した場合だけ処理が実行されます。

andは、

「AかつB」

という意味です。

OR条件とは

どちらか一方の条件が成立していればよい場合は「or」を使います。

day = "日曜日"

if day == "土曜日" or day == "日曜日":
    print("休日です")

この場合、

土曜日または日曜日であれば、

休日です

と表示されます。

orは、

「AまたはB」

という意味です。

条件分岐の具体例1 年齢判定

簡単な年齢判定プログラムを作ってみましょう。

age = 16

if age >= 18:
    print("18歳以上です")
else:
    print("18歳未満です")

16は18未満なので、

18歳未満です

と表示されます。

条件分岐の具体例2 偶数と奇数を判定

条件分岐を使えば、数字が偶数か奇数かを判定することもできます。

number = 10

if number % 2 == 0:
    print("偶数です")
else:
    print("奇数です")

「%」は、割り算の余りを求める演算子です。

10を2で割った余りは0なので、

偶数です

と表示されます。

条件分岐の具体例3 ログイン判定

実際のシステムに近い例も見てみましょう。

password = "abc123"

if password == "abc123":
    print("ログイン成功")
else:
    print("パスワードが違います")

入力されたパスワードが一致している場合だけ、

ログイン成功

と表示されます。

実際のWebシステムでは、さらにデータベースなどと組み合わせてログイン処理を行います。

条件分岐はゲームでも使われる

ゲームでも条件分岐は頻繁に使用されています。

例えば、

HPが0以下になった
    ↓
ゲームオーバー

という処理です。

Pythonで表すと、

hp = 0

if hp <= 0:
    print("ゲームオーバー")

となります。

ほかにも、

敵に当たったらダメージ
アイテムを取ったら得点追加
ゴールに到達したらクリア

など、多くの場面で条件分岐が利用されています。

日常生活にも条件分岐はたくさんある

プログラミングの条件分岐は難しいものに感じるかもしれません。

しかし、私たちは普段から似たような判断をしています。

例えば、

雨が降っている
→ 傘を持っていく

お腹が空いている
→ ご飯を食べる

電車が来た
→ 電車に乗る

テストが60点以上
→ 合格

これらはすべて、

「条件を確認して、その結果によって行動を変える」

という考え方です。

条件分岐は、それをコンピュータに実行させるための仕組みだと考えると理解しやすくなります。

条件分岐でよくある間違い

初心者がif文を書くときには、いくつか注意点があります。

まず注意したいのが、「=」と「==」の違いです。

score = 60

は代入です。

score == 60

は比較です。

また、Pythonではインデントも重要です。

例えば、

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

のように、ifの中で実行する処理は字下げして記述します。

インデントが正しくないとエラーになる場合があります。

さらに、elifを使う場合は条件の順番にも注意が必要です。

条件分岐を理解するコツ

条件分岐を理解するためには、コードを読むだけではなく、実際に数字を変更して動かしてみることが大切です。

例えば、

score = 80

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

というプログラムがあれば、

score = 50

に変更してみましょう。

実行結果が、

不合格

に変わります。

次に、

score = 60

にすると、

合格

になります。

このように値を変更しながら結果を確認すると、

「>=には60も含まれる」

ということも理解しやすくなります。

練習問題

最後に簡単な問題を考えてみましょう。

変数temperatureに気温が入っています。

気温が30度以上なら、

暑いです

30度未満なら、

過ごしやすいです

と表示するプログラムを作ってみてください。

解答例

temperature = 32

if temperature >= 30:
    print("暑いです")
else:
    print("過ごしやすいです")

まずはこのような簡単な条件分岐から練習していくとよいでしょう。

まとめ

条件分岐とは、

条件によってプログラムの処理を変更する仕組み

です。

Pythonでは、主に、

if
elif
else

を使って条件分岐を記述します。

基本的な形は、

if 条件:
    処理
else:
    処理

です。

条件分岐は、

Webサイト、ゲーム、スマートフォンアプリ、業務システムなど、ほとんどすべてのプログラムで使われています。

プログラミング初心者は、まず、

「もし○○なら△△する」

という日常的な考え方に置き換えて理解すると分かりやすいでしょう。

条件分岐を理解したら、次は同じ処理を何度も実行するための「繰り返し処理」を学ぶと、さらに作れるプログラムの幅が広がります。