<一覧に戻る

else節を持つループ

Pythonでは、forループやwhileループにelse節を追加することができます。このelse節は、ループが正常に終了したときに実行されるコードを定義します。つまり、break文でループが中断された場合はelse節は実行されず、通常の繰り返しが終わった場合にのみ実行されるのです。

1. 基本的な使い方

まずは、forループの例を見てみましょう。以下のコードでは、リストの要素を順に表示し、最後にelse節が実行されることを確認します。

numbers = [1, 2, 3, 4, 5]

for num in numbers:
    print(num)
else:
    print("すべての番号を処理しました。")

コードの解説

  • numbersというリストを定義しています。
  • forループで、リストの各要素に対して処理を行います。
  • 各要素が表示された後に、else節が実行され、「すべての番号を処理しました。」というメッセージが表示されます。

この場合、forループはリストのすべての要素を正常に処理したため、else節が実行されます。

2. break文を使った例

次に、break文を使った場合の挙動を確認しましょう。以下のコードでは、特定の条件を満たすとループが中断され、その後にelse節が実行されないことを示します。

numbers = [1, 2, 3, 4, 5]

for num in numbers:
    if num == 3:
        print("3が見つかりました。ループを中断します。")
        break
    print(num)
else:
    print("すべての番号を処理しました。")

コードの解説

  • numbersリストを再び使用しています。
  • forループ内で、数字が3の時にbreak文を実行します。
  • 3が見つかると、メッセージが表示され、ループが中断されます。
  • else節は実行されず、「すべての番号を処理しました。」というメッセージは表示されません。

このように、break文でループが中断されると、else節はスキップされます。

3. whileループでの使い方

whileループでも同様にelse節を使用することができます。次の例を見てみましょう。

count = 0

while count < 5:
    print(count)
    count += 1
else:
    print("カウントが完了しました。")

コードの解説

  • countを0で初期化しています。
  • whileループは、countが5未満の間、実行されます。
  • countの値を表示し、1ずつ増加させます。
  • ループが正常に終了した後、else節が実行され、「カウントが完了しました。」というメッセージが表示されます。

4. break文を使ったwhileループの例

最後に、whileループでbreak文を使用した場合の例を示します。

count = 0

while count < 5:
    if count == 3:
        print("3に到達しました。ループを中断します。")
        break
    print(count)
    count += 1
else:
    print("カウントが完了しました。")

コードの解説

  • countを0で初期化し、whileループを使用しています。
  • countが3の時、break文が実行され、ループが中断されます。
  • 3が見つかったときのメッセージが表示されますが、else節は実行されません。

まとめ

  • else節を持つループは、ループが正常に終了した場合にのみ実行されます。
  • break文を使用してループを中断すると、else節はスキップされます。
  • forループとwhileループの両方でelse節を使用できます。

このように、else節を持つループは、ループの終了状態に応じて異なる処理を行うことができる非常に便利な機能です。これを活用して、より柔軟なプログラムを作成できるようになるでしょう。

出力結果: