AI資格ドリル
資格を選ぶ

用語比較

pass文とcontinue文の違い|何もしないか、ループの次の繰り返しへ進むか(Python3基礎)

pass文は何もせずに次の行へ進み、continue文はループの残りの処理を飛ばして次の繰り返しへ進みます。どちらもifの中などに置くと「ここでは特に処理しない」ように見えるため、取り違えやすい文です。

pass文は、文を書くことが構文上要求されているが、何の動作もする必要がないときに使います。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

pass文とcontinue文の要点

pass文

何もしない。次の行へそのまま進む。関数・クラス・if文などの本体を、構文上空にできないときの置き場として使う。

continue文

for・whileループの中で使い、ループの残りの文を飛ばして、次の繰り返しへ進む。

違いを表で確認

比較軸pass文continue文
実行したときの動き何も起こらず、次の行へ進むループ本体の残りを飛ばして、次の繰り返しへ進む
使える場所文が必要な場所ならどこでも(関数・クラス・if・ループの本体)forまたはwhileループの中
後ろに続く文実行されるその繰り返しでは実行されない
主な目的構文上の穴埋め、書きかけコードの仮置き条件に合う要素だけ処理を飛ばす
ifの本体に単独で書いたとき条件が真でも、後ろの処理が続けて実行される条件が真のとき、後ろの処理はその周回では実行されない

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

条件に合う要素だけ、後ろの処理を飛ばしたい人

偶数のときだけ追加をやめたいなら continue です。pass を書くと、条件が真でも後ろの追加が実行されます。

02

関数やクラスの中身を後で書く予定の人

公式チュートリアルの4.6節は、pass を新しいコードを書いているときの関数や条件文の仮置きの本体として使う例を示しています。本体を空にすると構文エラーになるため、pass が必要です。

03

ループ全体をやめたい人

このページの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. 1

    何をしたいかを決める

    「その場で何もしなくてよい(構文を満たしたいだけ)」のか、「この周回の残りを飛ばしたい」のかを決めます。

  2. 2

    構文を満たすだけならpass

    関数・クラス・条件文の本体を空にできないときは、pass を置きます。

  3. 3

    周回を飛ばすならcontinue

    ループの中で、条件に合う要素の残りの処理を飛ばしたいなら、continue を使います。

  4. 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 だと区別できる

同じ資格で次に知りたいこと

よくある質問

Qpassとcontinueの一番大きな違いは何ですか?

A

pass は何もせず次の行へ進み、continue はループの残りを飛ばして次の繰り返しへ進みます。

Qpassは何のために使いますか?

A

公式チュートリアルは、文を書くことが構文上要求されているが、プログラム上何の動作もする必要がないときに使うと説明しています。書きかけの関数や条件文の仮置きにも使えます。

Qcontinueはifの中だけで使えますか?

A

continue はループの中で使う文で、ifの中に限りません。ただしループの外では使えません。

Qpassとcontinueを入れ替えると結果は変わりますか?

A

変わります。pass では後ろの処理が実行され、continue ではその周回の残りが飛ばされます。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)