用語比較
pass文とcontinue文の違い|何もしないか、ループの次の繰り返しへ進むか(Python3基礎)
pass文は何もせずに次の行へ進み、continue文はループの残りの処理を飛ばして次の繰り返しへ進みます。どちらもifの中などに置くと「ここでは特に処理しない」ように見えるため、取り違えやすい文です。
pass文は、文を書くことが構文上要求されているが、何の動作もする必要がないときに使います。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
pass文とcontinue文の要点
pass文
何もしない。次の行へそのまま進む。関数・クラス・if文などの本体を、構文上空にできないときの置き場として使う。
continue文
for・whileループの中で使い、ループの残りの文を飛ばして、次の繰り返しへ進む。
違いを表で確認
| 比較軸 | pass文 | continue文 |
|---|---|---|
| 実行したときの動き | 何も起こらず、次の行へ進む | ループ本体の残りを飛ばして、次の繰り返しへ進む |
| 使える場所 | 文が必要な場所ならどこでも(関数・クラス・if・ループの本体) | forまたはwhileループの中 |
| 後ろに続く文 | 実行される | その繰り返しでは実行されない |
| 主な目的 | 構文上の穴埋め、書きかけコードの仮置き | 条件に合う要素だけ処理を飛ばす |
| ifの本体に単独で書いたとき | 条件が真でも、後ろの処理が続けて実行される | 条件が真のとき、後ろの処理はその周回では実行されない |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
条件に合う要素だけ、後ろの処理を飛ばしたい人
偶数のときだけ追加をやめたいなら continue です。pass を書くと、条件が真でも後ろの追加が実行されます。
関数やクラスの中身を後で書く予定の人
公式チュートリアルの4.6節は、pass を新しいコードを書いているときの関数や条件文の仮置きの本体として使う例を示しています。本体を空にすると構文エラーになるため、pass が必要です。
ループ全体をやめたい人
このページの2つはどちらもループを抜けません。ループ自体を抜けるのは break 文です。
具体例で使い分ける
例 1
同じ条件で、passとcontinueを入れ替える場合
1から5までを順に調べ、偶数のときの処理を変えて、奇数だけを集めようとする場面です。ifで n % 2 == 0 を調べ、その後ろに out.append(n) が続きます。
- 偶数のときに pass を書くと、何も起こらず次の行の out.append(n) が実行されます。結果は [1, 2, 3, 4, 5] で、偶数も入ります。
- 偶数のときに continue を書くと、その周回の残りが飛ばされ、out.append(n) が実行されません。結果は [1, 3, 5] になります。
結論: 「飛ばしたい」ときは continue です。pass は飛ばさず、動きを変えません。
例 2
本体を空にできない場所での、passの役割
関数 f の本体を後で書くつもりで、とりあえず定義だけ書く場面です。
- def f(): の後ろに pass を書くと、構文として成立し、f() を呼ぶと
Noneが返ります。 - if True: の後ろに何も書かない(本体が空)と、
IndentationError(expected an indented block)になります。
結論: pass は、構文上の穴を埋めるための文です。ここに continue は使えず、使えるのはループの中だけです。
問題文から答えを選ぶ手順
- 1
何をしたいかを決める
「その場で何もしなくてよい(構文を満たしたいだけ)」のか、「この周回の残りを飛ばしたい」のかを決めます。
- 2
構文を満たすだけならpass
関数・クラス・条件文の本体を空にできないときは、pass を置きます。
- 3
周回を飛ばすならcontinue
ループの中で、条件に合う要素の残りの処理を飛ばしたいなら、continue を使います。
- 4
ループ自体をやめるならbreak
ループを抜けたいなら、別の文である break を使います。違いは下の「次に読む」で確認できます。
試験での見分け方
- 1pass は何もせず、次の行へ進む。後ろの処理は続けて実行される。
- 2continue はループの残りを飛ばして、次の繰り返しへ進む。ループの中でだけ使う。
- 3ループ全体を抜けたいときは、どちらでもなく break を使う。
誤答しやすい選択肢
処理を飛ばすつもりでpassを書く
修正: pass は動作を変えません。条件が真のときに後ろの処理を飛ばしたいなら、continue に書き換えます。
continueをループの外でも使えると考える
修正: continue はループの中で使う文です。ループの外に置くと構文エラーになります。本体を空にしたいだけなら、pass を使います。
continueでループ全体が終わると考える
修正: continue は次の繰り返しに進むだけで、ループは続きます。ループ全体をやめるのは break です。
確認問題
Q1for n in range(1, 6): の中で、n が偶数のときに pass を書き、そのあと out.append(n) を実行すると、out に偶数は入りますか?
答え: 入ります。結果は [1, 2, 3, 4, 5] です。
pass は何もしないので、後ろの out.append(n) が実行されます。
Q2同じ処理で pass を continue に変えると、out の中身は何になりますか?
答え: [1, 3, 5]
continue は偶数の周回の残りを飛ばすので、out.append(n) が実行されません。
Q3def f(): の後ろに pass だけを書いて f() を呼ぶと、返り値は何ですか?
答え: None
pass は何もしない文で、return がない関数はNoneを返します。
Q4continue 文はどこで使えますか?
答え: forまたはwhileループの中です。
公式チュートリアルの4.4節は、continue 文をループの次のイテレーションを実行する文として説明しています。
到達チェック
- pass は何もしない、continue は次の周回へ進むと言える
- pass に置き換えると後ろの処理が実行されると説明できる
- continue はループの中でだけ使えると言える
- ループを抜けるのは break だと区別できる
関連ページで確認する
同じ資格で次に知りたいこと
- list.remove()とlist.pop()の違い|値を指定して削除するか、位置を指定して取り出すか(Python3基礎)
list.remove()とlist.pop()の違いを、指定するもの(値か位置か)、返り値、見つからないときのエラー、同じ値が複数あるときの動きで解説。Python3エンジニア認定基礎試験の第5章(リスト)の確認問題つきです。
- dictのkeys()・values()・items()の違い|キーだけ、値だけ、キーと値の組を取り出す(Python3基礎)
dictのkeys()・values()・items()の違いを、取り出すもの、for文での受け取り方、辞書を変更したときの見え方、リストとの違いで解説。Python3エンジニア認定基礎試験の第5章(辞書)の確認問題つきです。
- re.match()とre.search()の違い|文字列の先頭だけ調べるか、どこにあっても探すか(Python3基礎)
re.match()とre.search()の違いを、調べる範囲、結果が
Noneになる場合、MULTILINEとの関係、fullmatch()との違いで解説。Python3エンジニア認定基礎試験の第10章(reモジュール)の確認問題つきです。
よくある質問
Qpassとcontinueの一番大きな違いは何ですか?
pass は何もせず次の行へ進み、continue はループの残りを飛ばして次の繰り返しへ進みます。
Qpassは何のために使いますか?
公式チュートリアルは、文を書くことが構文上要求されているが、プログラム上何の動作もする必要がないときに使うと説明しています。書きかけの関数や条件文の仮置きにも使えます。
Qcontinueはifの中だけで使えますか?
continue はループの中で使う文で、ifの中に限りません。ただしループの外では使えません。
Qpassとcontinueを入れ替えると結果は変わりますか?
変わります。pass では後ろの処理が実行され、continue ではその周回の残りが飛ばされます。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
