💡 この記事でわかること
- 制御構文とは何か(プログラムの流れを変えるしくみ)
- if / elif / else による条件分岐の書き方
- for文で決まった回数・リストの要素を繰り返す方法
- while文で条件が続く限り繰り返す方法と、無限ループの注意点
- break・continue でループの流れを制御する方法
1. 制御構文とは?
制御構文とは、
👉 プログラムの実行の流れをコントロールするための書き方です。
プログラムは基本的に上から下へ順番に実行されますが、実際のプログラムでは「条件によって処理を変えたい」「同じ処理を何回も繰り返したい」という場面がよくあります。それを実現するのが次の2つです。
- 条件分岐(if文):条件に当てはまるかどうかで処理を切り替える
- 繰り返し(for文・while文):同じ処理を何度も実行する
💡 Pythonでは、これらのまとまり(ブロック)をインデント(字下げ)で表します。{ }は使いません。インデントがずれるとエラーになるので、基本文法をまだ確認していない場合は先に読んでおくとスムーズです。
👉 Pythonの基本文法(print・変数・インデント)についての記事はこちら
2. if文(条件分岐)
if文は、「もし〜なら、この処理をする」という条件分岐を書くための構文です。
基本の形
age = 20
if age >= 18:
print("成人です") # 条件が True のときだけ実行される👉 if 条件:と書き、次の行からインデントを1段下げて、実行したい処理を書きます。行末のコロン:を忘れやすいので注意しましょう。
if / elif / else
条件を複数に分けたいときは、elif(else ifの略)とelseを使います。
score = 75
if score >= 80:
print("合格")
elif score >= 60:
print("再テスト")
else:
print("不合格")
# 実行結果: 再テスト👉 条件は上から順に判定され、最初に当てはまった1つだけが実行されます。どれにも当てはまらなかったときはelseが実行されます(elif・elseは省略可能です)。
条件式の書き方
条件には、比較演算子やand・or・notを使います。結果はTrueかFalse(真偽値)になります。
age = 25
is_member = True
if age >= 20 and is_member:
print("割引対象です")==(等しい) /!=(等しくない)>>=<<=(大小の比較)and(かつ) /or(または) /not(否定)
👉 「等しい」の比較は==(イコール2つ)です。=1つは代入なので、条件式に書くとエラーになります。比較演算子や真偽値については、こちらの記事で詳しく解説しています。
👉 Pythonのデータ型(真偽値・比較演算子)についての記事はこちら
3. for文(決まった回数・要素の繰り返し)
for文は、「決まった回数」や「リストの要素の数だけ」処理を繰り返したいときに使います。
range()で回数を指定する
for i in range(3):
print(i)
# 実行結果:
# 0
# 1
# 2👉 range(3)は「0, 1, 2」の3回分を意味します。0から始まり、指定した数は含まれない点に注意してください。range(1, 6)のように書くと「1, 2, 3, 4, 5」になります。
リストの要素を順に取り出す
fruits = ["りんご", "みかん", "ぶどう"]
for fruit in fruits:
print(fruit)
# 実行結果:
# りんご
# みかん
# ぶどう💡 for 変数 in リスト:と書くと、リストの要素が先頭から1つずつ変数に入り、その回数だけ処理が繰り返されます。fruitの部分の名前は自由に決められます。
4. while文(条件が続く限りの繰り返し)
while文は、「条件がTrueである間、ずっと繰り返す」ときに使います。繰り返す回数が事前に決まっていない場合に向いています。
count = 1
while count <= 3:
print(count)
count += 1 # ← これを忘れると無限ループになる
# 実行結果:
# 1
# 2
# 3👉 while文では、ループの中で「条件がいつか False になるような処理」を必ず入れます。上の例ではcount += 1でcountを増やしているため、4になった時点で条件が False になり、ループが終わります。
💡 条件がずっと True のままだと、プログラムが終わらない「無限ループ」になります。実行が止まらなくなったときは、ターミナルでCtrl + Cを押すと強制終了できます。
5. breakとcontinue
for文・while文の中では、breakとcontinueでループの流れを変えられます。
break:ループを途中で抜ける
for i in range(1, 11):
if i == 5:
break # 5になったらループを終了
print(i)
# 実行結果: 1 2 3 4continue:残りをスキップして次の回へ
for i in range(1, 6):
if i % 2 == 0:
continue # 偶数のときは print をスキップ
print(i)
# 実行結果: 1 3 5👉 breakはループそのものを終了、continueはその回だけスキップして繰り返しは続行、という違いです。
6. 入れ子(ネスト)とインデント
if文やfor文は、中にさらにif文やfor文を書くこと(入れ子)ができます。その場合はインデントをもう1段深くします。
for i in range(1, 4):
for j in range(1, 4):
print(i * j, end=" ")
print() # 内側のforが終わったら改行
# 実行結果:
# 1 2 3
# 2 4 6
# 3 6 9💡 どの処理がどのブロックに属するかはインデントの深さだけで決まります。スペースの数が揃っていないとIndentationErrorになるため、インデントは半角スペース4つで統一するのが一般的です。
7. 制御構文 早見表
| 構文 | 使う場面 | ポイント |
|---|---|---|
| if / elif / else | 条件によって処理を分ける | 上から順に判定し、最初に当てはまった1つだけ実行 |
| for | 回数・要素が決まった繰り返し | range()やリストと組み合わせる |
| while | 条件が続く限りの繰り返し | 条件を変える処理を忘れると無限ループ |
| break | ループを途中で終了したい | ループそのものを抜ける |
| continue | その回だけ処理を飛ばしたい | 次の繰り返しに進む |
8. まとめ
Pythonの制御構文についてまとめると、次のようになります。
- if / elif / else:条件によって処理を分ける。行末の
:とインデントを忘れない - for:
range()やリストと組み合わせて、決まった回数・要素だけ繰り返す - while:条件がTrueの間ずっと繰り返す。無限ループに注意
- break / continue:ループを抜ける / その回をスキップする
👉 まずは「if文で条件分岐」「for文で決まった回数の繰り返し」の2つを、実際にコードを書いて動かしてみましょう。この2つが使えるようになると、簡単なプログラムはほとんど書けるようになります。