1. 0を飛ばし -1 で打ち切る
  2. 0も -1 も無ければ全部足す
  3. 0しか無ければ 0 になる
  4. 先頭が -1 なら何も足さない
  5. 空のリストは 0 を返す
  6. 0を飛ばしたあとに -1 で終わる
コース一覧
Python入門:基礎文法編
breakとcontinue

Python入門:基礎文法編

変数、条件分岐、ループ、関数、リスト・辞書、ファイル操作など Python の基礎文法を、ブラウザ上で毎レッスン実際にコードを書き、自分だけの「おこづかい帳アプリ」を育てながら学べる無料コースです。プログラミング完全未経験から始められ、環境構築や事前知識は一切不要です。約 18 時間 (1 日 30 分 × 37 日) で 74 レッスンを修了でき、修了後は入力・集計・ファイル保存まで備えたスクリプトを1から書けるようになります。

1
はじめての Python
01. printで表示15分
02. 文字列の連結15分
03. 四則演算15分
04. 実行順序15分
05. コメント15分
06. エラーを読んでみる15分
07. つくる:レシート表示15分
08. 第1章クイズ10分
2
変数とデータ型
01. 変数15分
02. typeで型を調べる15分
03. 数値への変換15分
04. 文字列への変換15分
05. boolとNone15分
06. f-string15分
07. 入力を受け取る15分
08. つくる:入力できるおこづかい帳15分
09. 第2章クイズ10分
3
演算子と式
01. 比較演算子15分
02. 論理演算子15分
03. in演算子15分
04. 剰余と切り捨て除算15分
05. 連鎖比較と優先順位15分
06. 三項演算子15分
07. つくる:予算チェック15分
08. 第3章クイズ10分
4
条件分岐
01. if文の基本15分
02. if / elif / else15分
03. 条件の組み合わせ15分
04. match文15分
05. 定番:FizzBuzz判定15分
06. デフォルト値とor15分
07. つくる:カテゴリ自動判定15分
08. 第4章クイズ10分
5
ループ
01. forで合計15分
02. whileで繰り返す15分
03. rangeとstep15分
04. breakとcontinue15分
05. enumerateで番号付け15分
06. zipで組み合わせ15分
07. 入れ子ループ15分
08. つくる:何件でも記録15分
09. 第5章クイズ10分
6
関数
01. 関数を定義する15分
02. 引数と戻り値15分
03. デフォルト引数15分
04. キーワード引数15分
05. 複数の戻り値15分
06. divmod15分
07. 変数のスコープ15分
08. lambda関数15分
09. つくる:関数に分割15分
10. 第6章クイズ10分
7
リストと辞書
01. リストの追加と削除15分
02. スライス15分
03. 辞書の基本15分
04. 辞書を走査15分
05. keyでソート15分
06. setで重複除去15分
07. リスト内包表記15分
08. タプルアンパック15分
09. つくる:カテゴリ別集計15分
10. 第7章クイズ10分
8
ファイルとエラー処理
01. ファイルを読み込む15分
02. ファイルに書き込む15分
03. withで安全に扱う15分
04. CSV形式で保存15分
05. try-exceptで備える15分
06. 例外の種類15分
07. つくる:保存機能15分
08. 第8章クイズ10分
9
総合制作
01. 全機能を統合しよう15分
02. 月間レポート機能15分
03. 自由拡張15分
04. 完成と次のステップ10分

breakとcontinue

break と continue の分かれ道

1 件だけ飛ばしたいのに、全部止まってしまう

ループは最後まで全部回すのが基本ですが、途中で流れを変えたくなることがあります。用意されている命令は 2 つで、名前は似ていますが行き先がまったく違います。

continue は その周だけ飛ばして次に進む 命令です。

Python

for name in ["りんご", "", "パン"]: if name == "": continue print(name)

continue に到達すると、その下の print(name) は実行されず、すぐ次の周に進みます。表示されるのは りんご と パン だけです。

break は ループそのものを抜ける 命令です。

Python

for name in ["りんご", "パン", "おわり", "牛乳"]: if name == "おわり": break print(name)

おわり に当たった時点でループが終わるので、うしろの 牛乳 は読まれません。表示は りんご と パン の 2 行です。

解説

break は建物から出る、continue は次の部屋へ進む。この差をはっきり持っておくと迷いません。

書いた順番が、そのまま優先順位になる

飛ばす判定と打ち切る判定を同じループに入れると、上に書いたほうが先に効きます。打ち切りを先に置けば、合図に当たった時点でその周の残りは一切動きません。

判定が重ならない値どうしなら、どちらを先に書いても結果は同じです。ただし条件が重なる場合は、順番がそのまま優先順位になります。elif で「上から順に評価される」と学んだのと同じ話です。

continue より下に書いた行は、その周では絶対に動きません。「書いたのに実行されない」という相談の多くは、これが原因です。

while と組み合わせるときは特に慎重に扱います。continue で戻ったときに位置を進める行を飛ばしてしまうと、そのまま無限ループになります。

break で抜けたあとは、ループの下に続く

break はループを終わらせるだけで、関数を終わらせるわけではありません。抜けたあとは、ループの下に書いた行から続きます。

だから break で抜ける形を書いたときは、ループの下に return があるかを必ず確かめます。無いと関数は None を返します。

なお continue を使わず if で囲んでも、飛ばす条件が 1 つなら結果は同じです。条件が増えてくると continue を並べたほうがインデントを浅く保てて、読みやすくなります。

やってみよう

関数 total_skip_zero(prices) を実装してください。引数 prices は金額 (int) が並んだリストです。

0 の要素は continue で飛ばして合計に入れません。-1 は打ち切りの合図なので、break でループを抜け、それ以降は読みません。それ以外の金額を足した合計を return します。

prices が空のとき、-1 が先頭にあるとき、0 しか入っていないときは、いずれも 0 を返します。3 つとも、合計を 0 から始めていれば自然にそうなります。

要件

  1. 関数名は total_skip_zero で、引数はリスト prices の1つだけにする
  2. 0 の要素は continue で飛ばして合計に入れない
  3. -1 に当たったら break でループを抜け、それ以降は読まない
  4. 空のリストや -1 が先頭の場合は 0 を返す

入出力例

total_skip_zero([120,0,80,-1,500]) → 200 total_skip_zero([120,80,300]) → 500 total_skip_zero([0,0,0]) → 0 total_skip_zero([-1,120,80]) → 0 total_skip_zero([]) → 0 total_skip_zero([0,250,-1]) → 250

ヒント

total = 0 をループの前に置き、条件に当たらなかったものだけ足します

-1 の判定を先に書くと、打ち切りが確実に効きます

continue はその周だけ飛ばし、break はループそのものを終わらせます

return はループの外に書きます。break で抜けたあとの行が実行されます

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

関連レッスン

  • enumerateで番号付け

    enumerate で品名リストに1から始まる通し番号を振る numbered_list を作る

  • zipで組み合わせ

    zip で品名リストと金額リストを組にし、レシート行に整える pair_lines を作る

  • 入れ子ループ

    ループの中にループを書いて九九の表を組み立てる multiplication_table を作る

  • つくる:何件でも記録

    第5章の総仕上げ。記録の集まりから番号付き一覧と合計を返す show_all を作る

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • ループ繰り返し処理。矢印で戻すか専用記号で示す
  • 評価出力品質を数値化して継続改善する活動
  • 関数処理に名前を付けて再利用できる単位
  • インデントPythonはインデント(通常スペース4つ)でコードブロックを定義する。
  • 引数位置引数=順番で渡す。
  • リスト順序付きで複数の値を扱うデータ構造
main.py
学習モード
エディタを読み込んでいます

メモ

breakとcontinue

⌘S で保存