【Python入門シリーズ】第5章条件分岐とループ処理の基礎 - プログラムの流れを制御する方法

【Python入門シリーズ】第5章:条件分岐とループ処理の基礎 – プログラムの流れを制御する方法

プログラミングにおいて、単純な処理だけでなく、状況に応じて異なる処理を行ったり、同じ処理を繰り返すことができる仕組みが必要です。これを実現するために、Pythonでは「条件分岐」と「ループ処理」が用意されています。

この章では、Pythonのif文を使った条件分岐と、for文while文を使ったループ処理について詳しく学びます。条件分岐やループ処理を理解することで、より複雑なプログラムを書けるようになります。


5.1 条件分岐(if文)

条件分岐は、ある条件が真(True)か偽(False)かによって、実行する処理を変えるために使います。Pythonでは、if文を使って条件分岐を行います。

5.1.1 基本的なif文の書き方

基本的なif文の構造は以下の通りです:

if 条件:
条件がTrueの場合に実行する処理

具体例を見てみましょう。

x = 10

if x > 5:
print("xは5より大きい") # 条件がTrueなので、この処理が実行される

この例では、x の値が 5 より大きいかどうかを判断しています。条件が True なので、print() の内容が実行され、xは5より大きい と表示されます。


5.1.2 if-else文

if 文に加えて、条件が False だった場合に別の処理を行いたいときは、else文を使います。

x = 3

if x > 5:
print("xは5より大きい")
else:
print("xは5以下です") # 条件がFalseなので、この処理が実行される

この例では、x の値が 5 より小さいため、else ブロックの処理が実行されます。


5.1.3 if-elif-else文

複数の条件をチェックしたい場合は、elif文を使います。elif は「else if」の略で、最初の if 条件が False だった場合に、さらに別の条件をチェックすることができます。

x = 7

if x > 10:
print("xは10より大きい")
elif x > 5:
print("xは5より大きいが10以下です") # この条件がTrueなので、この行が実行される
else:
print("xは5以下です")

この例では、x の値が 7 なので、x > 5 の条件が True となり、xは5より大きいが10以下です というメッセージが表示されます。


5.1.4 ネストしたif文

if文の中にさらにif文を入れることを**ネスト(入れ子)**といいます。ネストを使うと、複数の条件に対してさらに詳細な条件を設定できます。

x = 15

if x > 10:
print("xは10より大きい")
if x > 20:
print("xは20より大きい")
else:
print("xは10より大きいが20以下です")

この例では、まず x > 10 の条件が True であるため、次の条件に進みます。次に x > 20False なので、else のブロックが実行され、xは10より大きいが20以下です と表示されます。


5.2 ループ処理(繰り返し処理)

ループ処理を使うことで、同じ処理を何度も繰り返すことができます。Pythonでは、主にfor文while文がループ処理に使われます。


5.2.1 for文

for文は、指定された回数や範囲内で繰り返し処理を行うために使用します。特に、リストや文字列などのイテラブルオブジェクト(繰り返し処理可能なオブジェクト)の各要素に対して処理を行うのに便利です。

例:リストの各要素に対して処理を行う
fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
print(fruit)

このコードでは、リスト fruits の各要素に対して for ループが繰り返され、それぞれの要素が fruit という変数に代入されます。結果として次のように表示されます。

apple
banana
cherry
例:数値の範囲を繰り返す(range() 関数)

range() 関数を使うと、特定の範囲の数値を生成し、それに対してループ処理を行うことができます。

for i in range(5):
print(i)

この例では、0 から 4 までの5回ループが実行され、次のように出力されます。

0
1
2
3
4

range(5)0 から始まる5つの整数を生成します(0 から 4 まで)。注意すべき点は、range() で生成される範囲は開始値から終値-1までであることです。


5.2.2 while文

while文は、条件が True の間、処理を繰り返すループです。条件が False になると、ループが終了します。

基本構文
while 条件:
条件がTrueの場合に実行する処理
例:カウンタを使ったwhileループ
count = 0

while count < 5:
print(count)
count += 1

このコードでは、count の値が 5 より小さい間、while ループが繰り返されます。ループの中で count の値を1ずつ増やしていくため、ループは次のように出力されます。

0
1
2
3
4

count5 になった時点で条件が False になり、ループが終了します。


5.3 ループの制御:breakとcontinue

ループ処理中に、特定の条件でループを中断したり、次の繰り返しにスキップしたい場合があります。Pythonでは、breakcontinue を使ってループの動作を制御することができます。


5.3.1 break文

break 文は、ループを途中で終了するために使います。break が実行されると、ループ全体が即座に終了します。

for i in range(10):
if i == 5:
break # ループが終了する
print(i)

この例では、i5 になった時点で break が実行され、ループが終了します。そのため、出力は次のようになります。

0
1
2
3
4

5.3.2 continue文

continue 文は、現在の繰り返しをスキップし、次の繰り返しに進むために使います。continue が実行されると、その時点でループ内の残りの処理がスキップされ、次の反復が始まります。

for i in range(5):
if i == 2:
continue # この繰り返しをスキップ
print(i)

この例では、i2 の時に continue が実行され、その回の処理がスキップされます。結果として次のように出力されます。

0
1
3
4

5.4 ループのネスト

ループは、他のループの中に**ネスト(入れ子)**することができます。これにより、二重ループや多重ループを使って、複雑な繰り返し処理を実行できます。

例:ネストされたforループ
for i in range(3):
for j in range(2):
print(f"i = {i}, j = {j}")

このコードでは、外側のループが i の値を 0 から 2 まで繰り返し、内側のループが j の値を 0 から 1 まで繰り返します。結果として次のように出力されます。

i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1

5.5 無限ループ

無限ループとは、終了条件が満たされず、永遠に繰り返しが続くループのことです。通常は避けるべき状況ですが、意図的に無限ループを作成し、特定の条件で手動でループを終了させることもあります。

例:無限ループとbreakの併用
while True:
response = input("終了するには 'exit' と入力してください: ")
if response == "exit":
break # 'exit' と入力されたらループを終了する

このコードでは、True が常に True なので、while ループは無限に繰り返されますが、ユーザーが "exit" と入力すると break によってループが終了します。


まとめ

この章では、Pythonの**条件分岐(if文)ループ処理(for文、while文)**について詳しく学びました。条件分岐を使うことで、プログラムの動作を柔軟に制御でき、ループ処理を使うことで効率的に同じ処理を繰り返すことができます。また、breakcontinue を使ってループを制御する方法も学びました。