条件分岐とは?プログラムの流れを制御する重要な概念
条件分岐の概要
プログラムにおける条件分岐は、「ある条件が成立するかどうかによって異なる処理を実行する」仕組みです。たとえば、ユーザーが入力した数値が正の数か負の数かを判定し、それに応じて異なるメッセージを表示するといった用途があります。
なぜ条件分岐が重要なのか?
条件分岐を使うことで、次のような柔軟なプログラムを作成できます。
- 入力に応じた処理の切り替え
- 特定の条件下でのみ実行する処理
- プログラムの流れを動的に制御
Pythonのif文の基本構文
基本的なif文の書き方
Pythonのif文は次のように記述します。
if 条件式:
実行する処理
具体例
x = 10
if x > 0:
print("xは正の数です")
このプログラムでは、x
が0より大きい場合に「xは正の数です」と出力されます。
if文におけるelseとelifの使い方
elseの使い方(条件が成立しなかった場合の処理)
elseは、「ifの条件が成立しないときに実行する処理」を記述します。
構文:
if 条件式:
実行する処理1
else:
実行する処理2
例:
x = -5
if x > 0:
print("xは正の数です")
else:
print("xは0以下です")
この場合、x
が負の数なので「xは0以下です」が出力されます。
elifの使い方(複数の条件を連続して判定する)
elifは「複数の条件を順に評価し、成立した条件に応じて処理を実行する」ために使います。
構文:
if 条件式1:
実行する処理1
elif 条件式2:
実行する処理2
else:
実行する処理3
例:
score = 85
if score >= 90:
print("評価: A")
elif score >= 70:
print("評価: B")
else:
print("評価: C")
この場合、score
が85なので「評価: B」が出力されます。
複雑な条件を扱うための論理演算子
and, or, notを使った条件の組み合わせ
複数の条件を組み合わせたい場合は、and(かつ)、or(または)、not(否定)を使います。
例1: and(両方の条件が成立する場合)
x = 10
y = 5
if x > 0 and y > 0:
print("xもyも正の数です")
このプログラムでは、x
とy
がともに正の数の場合にメッセージを表示します。
例2: or(いずれかの条件が成立する場合)
age = 15
if age < 18 or age > 65:
print("割引が適用されます")
この例では、age
が18歳未満か65歳以上の場合に割引が適用されます。
例3: not(条件の否定)
is_student = False
if not is_student:
print("学生ではありません")
このプログラムでは、is_student
がFalse
のときに「学生ではありません」と表示されます。
1行で書くif文(簡略化した記述方法)
1. if文を1行で書く方法(単一の処理の場合)
1行でif文を書く場合、次のように記述します。
構文:
実行する処理 if 条件式
例:
x = 10
if x > 0: print("xは正の数です")
2. 条件演算子(三項演算子)を使った1行if文
構文:
結果1 if 条件式 else 結果2
例:
x = 10
result = "正の数" if x > 0 else "0以下"
print(result)
この場合、x
が0より大きいので「正の数」と表示されます。
条件式の短縮記法:or文を使った初期値設定
or文を使った変数の初期化
or文を使うことで、変数がNone
や空である場合にデフォルト値を設定できます。
例:
name = None
greeting = name or "ゲスト"
print(f"こんにちは、{greeting}さん!")
このプログラムでは、name
がNone
なので「こんにちは、ゲストさん!」と出力されます。
条件分岐を使った具体例
ユーザー入力を利用した条件分岐
ユーザーに年齢を入力させ、その年齢に応じたメッセージを表示するプログラムを作成します。
例:
age = int(input("あなたの年齢を入力してください: "))
if age < 18:
print("未成年です")
elif age < 65:
print("成人です")
else:
print("シニア世代です")
このプログラムでは、ユーザーが入力した年齢に基づいて異なるメッセージを表示します。
ネストされた条件分岐(ifの中にif)
ネストされたif文の使い方
if文の中にさらにif文を入れることで、より複雑な条件を判定できます。
例:
number = int(input("数字を入力してください: "))
if number > 0:
if number % 2 == 0:
print("正の偶数です")
else:
print("正の奇数です")
else:
print("0または負の数です")
このプログラムでは、入力された数値が正の偶数か正の奇数かを判定します。
よくある間違いとトラブルシューティング
コロンの付け忘れ
if文の条件部分の後には必ず「:」を付ける必要があります。忘れるとSyntaxError
が発生します。
間違い例:
if x > 0
print("正の数です")
正しい例:
if x > 0:
print("正の数です")
インデント(字下げ)のミス
Pythonではインデントが正しくないとエラーになります。if文に続く処理は必ず一段階インデントするようにしましょう。
間違い例:
if x > 0:
print("正の数です") # インデントがないためエラー
正しい例:
if x > 0:
print("正の数です")
まとめと次のステップ
条件分岐は、プログラムを動的に制御するための基本的な要素です。if文、else文、elif文、論理演算子を活用することで、柔軟なプログラムが書けるようになります。特殊な1行if文やor文の短縮記法も使いこなすと、コードがよりシンプルで読みやすくなります。次のステップとして、ループ(for文やwhile文)と組み合わせてより複雑な処理に挑戦してみましょう!