Pythonのcontinueを使いこなす|実例付きで丁寧に解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年6月)

✔以下のような疑問を抱いている方におすすめの記事です

「Pythonのcontinue文はどう使うのだろうか?」
「Pythonのcontinue文の書き方を詳しく知りたい」
「Pythonでcontinue文を用いた具体的な例を見てみたい」

✔この記事で学べること

  • Pythonのcontinue文の基本的な使用法
  • continue文の書き方とその応用
  • Pythonでcontinue文を用いた具体的な例

本記事では、Pythonのcontinue文の基本的な使い方から、さまざまなオプションを使った応用まで、具体的な例を交えて詳しく解説します。

最後までお読みいただければ幸いです。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Pythonのcontinueを理解するための前提知識

Pythonとその制御フローステートメントについてお伝えします。

これらについて詳しく知ることで、さらにPythonプログラミングへの理解を深められるでしょう。

  • Pythonとは
  • continue、break、passステートメントの基本的な概念
  • Python制御フローステートメントとは

Pythonとは

Pythonは、1991年にグイド・ヴァンロッサムによって開発された、高レベルでインタープリタ型のプログラミング言語です。

Pythonはシンプルで読みやすい文法を持ち、その柔軟性とパワーから、初心者から経験豊富なプロフェッショナルまで幅広く使われています。

用途は多岐にわたり、以下のようなものが主な例です。

  • データ分析
  • ウェブ開発
  • 機械学習

PythonをベースとしたDjangoというWebフレームワークについて、以下のチュートリアルで一から学べます。

continue、break、passステートメントの基本的な概念

Pythonには制御フローステートメントと呼ばれるものがあります。

その名前の由来は、プログラム内で特定部分へのフローを制御するためのもの、という役割からきています。

適切に使いこなすことで、より効率的かつ簡潔なコードを書くことが可能です。

主なものは以下の通り。

  • continue
  • break
  • pass

Python制御フローステートメントとは

Pythonの制御フローステートメントは、プログラムの実行フローを制御する構造です。

  • if-else文
  • for-whileループ
  • continue
  • break
  • pass

これらの制御フローステートメントを理解し、適切に使い分けられるようになりましょう。

continueステートメントとは何か

Pythonのcontinueステートメントについて、詳しく解説します。

continueを理解すれば、Pythonのループ処理の効率性と可読性を向上させられます

  • continueステートメントの定義
  • continueステートメントの役割
  • continueステートメントの活用場所

continueステートメントの定義

Pythonのcontinueステートメントは、ループの中で使われます。

continueステートメントが呼び出されると、ループ内の残りの部分をスキップして次のイテレーション(反復)に直接移ります

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for number in numbers:
    if number % 2 == 0:
        continue
    print(number)

# 出力結果: 1 3 5 7 9

continueにより、現在のイテレーションを即終了し、ループの次のイテレーションに移れるのです。

continueステートメントの役割

continueステートメントの主な役割は、特定の条件下でループ内の処理をスキップすることです。

例えばリストの中で、特定の数値(例えばゼロや負の数値)を無視したい場合などに使用します。

numbers = [1, -2, 3, 0, -5, 6, 7, -8, 9, 0]

for number in numbers:
    if number <= 0:
        continue
    print(number)

# 出力結果: 1 3 6 7 9

このような使い方は、不要な計算を避け、パフォーマンスを改善するのに役立ちます。

continueステートメントの活用場所

continueステートメントは、forループやwhileループの中で、以下のようなときに使えます。

  1. 条件に合致しない要素のスキップ: リストや配列などの要素を処理する際、特定の条件に合致しない要素をスキップする
  2. ループの早期終了: ループ内である条件に合致した場合に、その時点でループを終了し次のイテレーションに進む
  3. ユーザー入力のバリデーション: ユーザーからの入力を検証する際に、特定の条件に合致しない場合にcontinueステートメントを使用して処理をスキップし、再度ユーザーに入力を促す
  4. 例外の回避: ループ内で例外が発生する可能性がある場合、continueステートメントを使用して例外を回避し、次のイテレーションに進む
  5. ループ内の特定の処理のスキップ: ループ内で特定の処理をスキップしたいとき

continueステートメントの使い方・実例

continueステートメントの使い方や実例をご紹介していきます。

具体的なコードを見ながら、実践での使い方をマスターしてしまいましょう。

  • continueステートメントの使用方法と具体例
  • それぞれの例の詳細な解説

continueステートメントの使用方法と具体例

continueステートメントの使用方法と具体例をご覧いただきます。

以下の2箇所での使い方をそれぞれご覧ください。

  • forループ
  • whileループ

forループでのcontinueステートメントの使用方法

リスト内の各要素を反復処理し、要素が’apple’の場合、print文をスキップしています。

fruits = ['apple', 'banana', 'cherry', 'date']
for fruit in fruits:
    if fruit == 'apple':
        continue
    print(fruit)

このプログラムを実行すると、’apple’を除くすべてのフルーツ名が出力されます。

whileループでのcontinueステートメントの使用方法

0から9までの数を出力し、数が偶数の場合、print文をスキップしています。

num = 0
while num < 10:
    if num % 2 == 0:
        num += 1
        continue
    print(num)
    num += 1

このプログラムを実行すると、1から9までの奇数が出力されます。

それぞれの例の詳細な解説

以下それぞれについて詳しく解説します。

  • forループ例について
  • whileループ例について

forループのcontinue使用例について

リストの各要素は、ifステートメントでチェックします。

要素が’apple’の場合、continueステートメントが呼び出され、print文はスキップされるのです。

continueが実行された結果、ループの次の反復に移り、’apple’は出力されません。

whileループのcontinue使用例について

whileループの例では、偶数の場合にcontinueステートメントが呼び出されます。

結果として数が偶数である場合には、print文はスキップされ、numの値だけが増加し、次の反復に移ります。

そのため、奇数だけが出力されるのです。

continueステートメントとpassステートメントの違い

continueステートメントとpassステートメントの違いを理解しておきましょう。

同じ様に考えてしまう方も多いので、これら2つを正しく理解する必要があります。

  • passステートメントの定義と役割
  • continueとpassが使われる状況の違いとその理由についての説明

passステートメントの定義と役割

passステートメントは、Python特有の存在で、プログラム上では何も行わない命令です。

主に適用したブロックが何もしない場合に限定します。

例えば、以下のコードを見てみましょう。

def my_function():
    pass

for i in range(10):
    pass

上記の例では、my_functionという関数とforループがありますが、それぞれpassステートメントを使用して中身が空の状態を保っています。

後で実装することを示すためのプレースホルダとして、または特定の条件で何もしないことを明示的に示すために用いられるのです。

continueとpassが使われる状況の違いとその理由についての説明

passとcontinueの主な違いは、「動作」です。

  • pass:ステートメントが存在する場所に影響を及ぼさない
  • continueは現在のループを中断し、次の反復に移行

そのため、continueは制御フローに影響を及ぼします。

以下のコードは、continueとpassの違いを示しています。

for i in range(5):
    if i == 2:
        continue
    print(i)

このコードを実行すると、出力は「0 1 3 4」になります。

これは、iが2のときにcontinueステートメントが呼び出され、print文がスキップされるためです。

しかし、continueステートメントをpassステートメントに置き換えると以下のようになります。

for i in range(5):
    if i == 2:
        pass
    print(i)

このコードを実行すると、出力は「0 1 2 3 4」になります。

これはpassステートメントは実質何もおこなわず、print文が実行され、ループ内の全ての数字が順番に表示されるからです。

breakステートメントとは何か

こちらでは、「breakステートメント」について解説します。

forループやwhileループでは、continueと合わせて使うことも多いステートメントです。

  • breakステートメントの定義
  • breakステートメントの役割
  • breakステートメントの使用場面
  • breakステートメントの使い方と例

breakステートメントの定義

breakステートメントは、その名の通り、プログラムの制御フローを”ブレイク”するPythonのステートメントです。

具体的には、breakステートメントは現在の最も内側のループから抜け出す役割を果たします。

numbers = [1, 2, 3, 4, 5]

for number in numbers:
    if number == 3:
        break
    print(number)

print("Loop finished")

実行すると以下のとおりです。

1
2
Loop finished

breakステートメントの役割

breakステートメントの主な役割は、特定の条件下でループを終了すること。

全ての要素を反復するのではなく、特定の条件を満たす要素が見つかった時点でループを終了させたい場合に有用です。

どのような状況でbreakステートメントが使われるのかの説明

以下に、breakステートメントが使われる一般的なシナリオの一つを示します。

例えば、あるリストから特定の要素を探していて、それが見つかったらその後の反復を止めたい場合です。

fruits = ["apple", "banana", "cherry", "durian", "elderberry"]

for fruit in fruits:
    if fruit == "cherry":
        print("Cherry found!")
        break
    print(fruit)

print("Loop finished")

実行するとこちらのようになります。

apple
banana
Cherry found!
Loop finished

breakステートメントの使い方と例

breakステートメントの使い方を具体的なコードとともに見てみましょう。

numbers = [1, 2, 3, 4, 5, 6]
for number in numbers:
    if number == 4:
        break
    print(number)

このコードを実行すると、「1 2 3」が出力されます。

数字の4が見つかった時点でbreakステートメントが実行され、ループが終了するためです。

そのため、4以降の数値は出力されません。

breakステートメントの使用方法と具体例

こちらでは、’forループ’と’whileループ’での’breakステートメント’の使用方法と具体例について説明します。

  • それぞれの例の詳細な解説
  • continueとbreakにおける出力結果の比較

それぞれの例の詳細な解説

以下2つの例と解説をご紹介します。

  • forループでのbreakステートメント例
  • whileループでのbreakステートメント例

forループでのbreakステートメント例

まずはforループでのbreakステートメントの使用例を見てみましょう。

for i in range(10):
    if i == 5:
        break
    print(i)

iが5になったところでbreakステートメントによりループが中断されるため、5以降の数字は表示されません。

whileループでのbreakステートメント例

whileループでのbreakステートメントの使用例を見てみましょう。

i = 0
while i < 10:
    if i == 5:
        break
    print(i)
    i += 1

iが5になったところでbreakステートメントによりループが中断されます。

continueとbreakにおける出力結果の比較

breakステートメントとcontinueステートメントは、出力結果を見ると違いが一目瞭然です。

  • continueステートメント:現在のループをスキップし、次のループの反復に移る
  • breakステートメントは現在のループを完全に終了
numbers = [1, 2, 3, 4, 5]

print("Using break statement:")
for number in numbers:
    if number == 3:
        break
    print(number)

print("\nUsing continue statement:")
for number in numbers:
    if number == 3:
        continue
    print(number)

出力結果をそれぞれ見てみましょう。

Using break statement:
1
2

Using continue statement:
1
2
4
5

注意点とベストプラクティス

Pythonの制御フローステートメントを適切に使用するための重要なヒントをご覧ください。

  • 各ステートメントを適切に使用するためのヒントとトリック
  • ステートメントの使用に関する一般的な注意点

各ステートメントを適切に使用するためのヒントとトリック

Pythonの制御フローステートメントをうまく利用するためのいくつかのヒントとトリックをご紹介します。

  1. コードの可読性とメンテナンス性を考慮してください。
    Pythonの特性として、「読みやすさが重要である」という原則があります。
    つまり、他の人(未来の自分を含む)がコードを理解しやすいようにすることが重要です。
    ループの中で多くのcontinueやbreakを使用すると、コードの流れを追うのが難しくなる場合があります。
  2. パフォーマンスを考慮してください。
    たとえば、ループ内でbreakステートメントを使用すると、ループが早期に終了し、不要な計算をスキップできるため、プログラムのパフォーマンスが向上することがあります。
  3. 適切な制御フローステートメントを選択してください。
    すべてのステートメントが特定の目的を持っているため、それぞれが最適に機能する特定の状況を理解することが重要です。

ステートメントの使用に関する一般的な注意点

制御フローステートメントを使用する際の一般的な注意点は次のとおりです。

  1. 無限ループに注意してください。
    whileループは条件がTrueの間、無限に反復されます。
    このループから抜け出すための適切な制御フローステートメントを用意することが重要です。
  2. 複数の制御フローステートメントを組み合わせて使用する場合の注意点。
    continueとbreakは同じループ内で混在して使用できますが、その使用は注意が必要です。
    これは、どちらのステートメントもループの制御フローに大きな影響を及ぼすためです。

これらのヒントと注意点を頭に入れて、制御フローステートメントをうまく使いこなすことが求められます。

まとめ

この記事を通じて、Pythonの制御フローステートメントについて学びました。

  • continueステートメント
  • breakステートメント
  • passステートメント

Pythonのコードをより効率的に、そしてわかりやすく書くために、これらのステートメントを適切に使いこなすことが重要です。

ぜひいろいろと触りながら、各ステートメントの違いを理解して、適切な場面で使えるようになりましょう。

タイトルとURLをコピーしました