【Python】レッスン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基礎習得者にお勧めの道5選(実務or副業)
breakとcontinueの違いと使用例|ループ処理の効率化テクニック
break
と continue
は、ループ処理の流れをその場でコントロールするための基本構文です。
どちらも使いどころを押さえることで、同じ処理でも短く・読みやすく・意図が伝わるコードにできます。
この2つを理解すると、条件が揃ったら早めにループを抜ける検索処理、特定の値だけを飛ばして集計するフィルタ処理、入力検証のやり直しなど、無駄の少ない反復処理を組み立てられるようになります。
本記事では基本構文から実例、つまずきやすいポイントまでを順に解説します。実行しながら手を動かせば、すぐに自分のコードへ応用できるはずです。
さっそく本文へ進みましょう。
breakとcontinueの意味|繰り返し処理を制御しよう
Pythonでは繰り返し処理(for文やwhile文)を途中で中断したり、特定の条件でスキップしたりするために、breakとcontinueというキーワードを使用します。
- break: ループを途中で終了させ、ループの外に抜け出します。
- continue: その回のループを終了し、次の繰り返しに進みます。ループは終了せず、続けて実行されます。
これらのキーワードの使い方を具体的なコード例を交えて紹介します。
breakの使い方|ループ処理の強制終了
breakはループを途中で終了させるためのキーワードです。
例えば数字を1から順に数え、5になったらループを終了するコードを見てみましょう。
# 1から10までの数字を繰り返し処理 for i in range(1, 11): # 変数iの値に、1から10までの値を順次代入していく print(i) # 変数iの値を出力 if i == 5: # もし変数iの値が5なら print("5に達したのでループを終了します。") break # ループを強制終了
このコードを実行すると以下のように出力されます。
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): # 変数iの値に、1から10までの値を順次代入していく if i % 3 == 0: # もし変数iが3の倍数なら(iを3で割って余りが0なら) continue # 次のループへ移動(5行目に行かずに2行目に戻る) print(i) # 3の倍数でない場合はループ内でここまで実行
このコードを実行すると以下のように出力されます。
1 2 4 5 7 8 10
このコードではi % 3 == 0
の条件が満たされた場合、continue
によってその回のループはスキップされ、次の数字に進みます。
そのため3, 6, 9といった3の倍数は表示されません。
まとめ|早期終了とスキップの要点整理
ここまでで、break
とcontinue
の役割の違いと具体的な使い方を確認しました。
条件がそろったら処理を打ち切る検索や探索、不要な要素だけを飛ばすフィルタ、入力検証のやり直しなど、無駄を減らし読みやすさを高めるループ設計ができるようになりました。
実際の課題や小さなスクリプトで試し、「終了」「スキップ」どちらが意図に合うかを意識して書き分けていきましょう。
手を動かすほど、判断が素早く正確になります。
- サイト改善アンケート|ご意見をお聞かせください(1分で終わります)
-
本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などをアンケート形式でお伺いしています。1分だけ、ご協力いただけますと幸いです。
【Python】サイト改善アンケート
練習問題: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. 数字が 8 であればループを終了(breakを使用)
1-2. 3の倍数であればループをスキップ(continueを使用)
1-3. ループの中で現在の数字を表示
2.ループ終了後にメッセージを表示
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。(クリックして開く)
# 1から10までの数字を繰り返し処理 for i in range(1, 11): # 数字が8の場合はループを途中で終了 if i == 8: print("8に達したのでループを終了します。") '''(穴埋め)''' # ここでループを終了 # 3の倍数の場合はその回の処理をスキップ if i % 3 == 0: print(f"{i}は3の倍数なのでスキップします。") '''(穴埋め)''' # ここで次の繰り返しに進む print(f"現在の数字: {i}") # プログラム終了時のメッセージ print("ループが終了しました。")
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
解答例|早期終了とスキップのループプログラム
例えば以下のようなプログラムが考えられます。
- 正解コード
-
# 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("ループが終了しました。")
breakとcontinueの疑問解消|FAQと用語のまとめ
初心者がつまずきやすいポイントをFAQとしてまとめ、またよく使う専門用語をわかりやすく整理しました。
理解を深めたいときや、ふと疑問に感じたときに役立ててください。
FAQ|breakとcontinueに関するよくある質問
- Q1. breakとcontinueの違いを簡単に説明すると?
-
break
はループ全体を終了し、continue
はその1回のループをスキップして次に進みます。
- Q2. breakやcontinueはfor文とwhile文の両方で使えますか?
-
はい、どちらのループでも使えます。動作の仕方は共通しています。
- Q3. breakやcontinueはif文と一緒に使うのが普通ですか?
-
その通りです。多くの場合、
if
条件を満たしたときにループを中断またはスキップするために使います。
Python用語集|breakとcontinueに関する用語一覧
今回の記事で出てきた用語・関数などを一覧で紹介します。
このサイトに出てくる 全てのPython用語をまとめた用語集 も活用してください。