Python入門|ループの流れを制御するbreakとcontinueの活用法【レッスン2-7】

一つ前のLessonでは繰り返し処理(while文)について学習しました。
今回は繰り返しの制御について見ていきます。
Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:条件分岐(if-else文)を理解しよう
・Lesson2-3:条件分岐(if-elif-else文)を理解しよう
・Lesson2-4:条件分岐(match文)を理解しよう
・Lesson2-5:繰り返し処理(for文)を理解しよう
・Lesson2-6:繰り返し処理(while文)を理解しよう
・Lesson2-7:繰り返しの制御を理解しよう ◁今回はココ
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理の基礎を理解しよう
・練習問題2-1:ハイアンドロー ゲームを作ろう
・練習問題2-2:数字当てゲームを作ろう
・練習問題2-3:簡単なじゃんけんゲームを作ろう
Lesson3:関数とスコープ編
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ:Pythonを用いたアプリ開発
breakとcontinueの違いと使用例|ループ処理の効率化テクニック
この章ではPythonにおける「繰り返しの制御」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。
繰り返し処理は特定の動作を何度も実行する際に非常に便利ですが、すべてのループが最初から最後まで実行されるとは限りません。
Pythonでは繰り返し処理の中で特定の条件に基づいて処理の流れを変更したい場合にbreakやcontinueを使ってループを制御することができます。
繰り返しの制御:breakとcontinue
Pythonでは繰り返し処理(for文やwhile文)を途中で中断したり、特定の条件でスキップしたりするために、breakとcontinueというキーワードを使用します。
- break: ループを途中で終了させ、ループの外に抜け出します。
- continue: その回のループを終了し、次の繰り返しに進みます。ループは終了せず、続けて実行されます。
これらのキーワードの使い方を具体的なコード例を交えて紹介します。
breakの使い方
breakはループを途中で終了させるためのキーワードです。
例えば数字を1から順に数え、5になったらループを終了するコードを見てみましょう。
# 1から10までの数字を繰り返し処理 for i in range(1, 11): print(i) if i == 5: print("5に達したのでループを終了します。") break # 5に達したらループを終了
このコードを実行すると以下のように出力されます。
1 2 3 4 5 5に達したのでループを終了します。
この例ではrange(1,11)によってiには1から10までの数値が代入されていく予定ですが、if i == 5:
の条件が満たされた時にbreak
が実行され、ループは途中で終了します。
よって6以降の数字は表示されません。breakは特定の条件でループを完全に抜けたいときに非常に役立ちます。
continueの使い方
一方continueはその回の処理をスキップして、次の繰り返しに進むためのキーワードです。
例えば1から10までの数字の中で、3の倍数をスキップして表示するコードを見てみましょう。
# 1から10までの数字を繰り返し処理 for i in range(1, 11): if i % 3 == 0: continue # 3の倍数の場合はスキップ print(i)
このコードを実行すると以下のように出力されます。
1 2 4 5 7 8 10
このコードではi % 3 == 0
の条件が満たされた場合、continue
によってその回のループはスキップされ、次の数字に進みます。
そのため3, 6, 9といった3の倍数は表示されません。
まとめ
繰り返し処理において、breakとcontinueは重要な役割を果たします。
breakはループを途中で終了し、continueは特定の条件で次の繰り返しに進むためのものです。これらのキーワードを使いこなすことで、効率的にループを制御できるようになります。
実際にコードを書いて試し、繰り返し処理の制御方法を学んでみてください。
練習問題:breakとcontinueを使ってループをコントロールしよう
1から10までの数字を順番に処理するプログラムを作成してください。
ただし3の倍数は全てスキップし、かつ数字が8に達したらループを終了するように制御しましょう。
breakとcontinueを使って、繰り返し処理の流れを制御する方法を学びましょう。
問題の詳細条件
以下の要件に従ってコードを完成させてください。
- for文を使用して、1から10までの数値を処理すること。
- 数字が8になったらbreakを使ってループを終了すること。
- 3の倍数の場合はcontinueを使ってその回のループをスキップすること。
- ループ終了時に「ループが終了しました」と表示すること。
ただし、以下のような実行結果となるコードを書くこと。
現在の数字: 1 現在の数字: 2 3は3の倍数なのでスキップします。 現在の数字: 4 現在の数字:5 6は3の倍数なのでスキップします。 現在の数字:7 8に達したのでループを終了します。 ループが終了しました。
【ヒント】難しいと感じる人だけ見よう
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
1.for文を使用して繰り返し処理を実行
1-1. 範囲 1 から 10 までの数値を生成
1-2. 各数値に対して処理を実行
2.if文を使用して条件を判定
2-1. 数字が 8 であればループを終了(breakを使用)
2-2. 3の倍数であればループをスキップ(continueを使用)
3.通常の処理
3-1. ループの中で現在の数字を表示
4.ループ終了後にメッセージを表示
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。(クリックして開く)
# 繰り返し処理の中でbreakとcontinueを使ってループを制御するコード for i in range(1, 11): # 1から10までの数字を順に処理 """【穴埋め問題1】 ここにif文を使って、数字が8の場合にループを終了するコードを書いてください。 """ """【穴埋め問題2】 ここにif文を使って、3の倍数の時にループをスキップするコードを書いてください。 """ """【穴埋め問題3】 現在の数字を表示するコードを書いてください。 """ print("ループが終了しました。") # ループ終了後に終了メッセージを表示
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
問題の答え合わせと解説
この問題の一つの正解例とそのコードの解説を以下に示します。
一つの正解例
例えば以下のようなプログラムが考えられます。
- 正解コード
-
# このコードは繰り返し処理を制御するためにbreakとcontinueを使用します # 1から10までの数字を繰り返し処理 for i in range(1, 11): # 数字が8の場合はループを途中で終了 if i == 8: print("8に達したのでループを終了します。") break # ここでループを終了 # 3の倍数の場合はその回の処理をスキップ if i % 3 == 0: print(f"{i}は3の倍数なのでスキップします。") continue # ここで次の繰り返しに進む print(f"現在の数字: {i}") # プログラム終了時のメッセージ print("ループが終了しました。")
正解例の詳細解説
正解コードをブロックごとに分けて解説します。
- 詳細解説
-
for文による繰り返し
for i in range(1, 11):
ここでは
range(1, 11)
を使って1から10までの数値が順番にi
に代入され、ループ内の処理がその回数分実行されます。breakを使ったループの終了
if i == 8: print("8に達したのでループを終了します。") break
if文によって
i
が8と等しいかどうかを確認します。i == 8
がTrue
の場合、print
文でメッセージを表示した後、breakが実行されます。continueを使った処理のスキップ
if i % 3 == 0: print(f"{i}は3の倍数なのでスキップします。") continue
この部分ではif文を使って
i
が3の倍数かどうかを確認しています。i % 3 == 0
は、i
を3で割った余りが0であることを意味し、3の倍数であることを示します。数字の表示
print(f"現在の数字: {i}")
この行では3の倍数や8でない場合に
i
の値を表示します。スキップされなかった数値のみが出力されます。ループ終了後の処理
print("ループが終了しました。")
ループが終了した後に、メッセージが表示されます。
これは
i
が8になった時点でbreakによってループが終了した場合に表示されます。まとめ
このコードではbreakとcontinueを使って繰り返し処理の流れを制御する方法を学びました。
breakはループを途中で終了し、continueは特定の条件でその回の処理をスキップします。
この2つの制御文を使いこなすことで、繰り返し処理をより柔軟にコントロールできるようになりましょう。
FAQ|ループの流れを制御する方法
- Q1. breakとcontinueの違いを簡単に説明すると?
-
break
はループ全体を終了し、continue
はその1回のループをスキップして次に進みます。
- Q2. breakやcontinueはfor文とwhile文の両方で使えますか?
-
はい、どちらのループでも使えます。動作の仕方は共通しています。
- Q3. breakやcontinueはif文と一緒に使うのが普通ですか?
-
その通りです。多くの場合、
if
条件を満たしたときにループを中断またはスキップするために使います。
質問用コンタクトフォーム
この記事はAIを用いて書いた記事です。
人間の目による確認も行っていますが、もし間違い等ありましたらご指摘頂けると大変助かります。