1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

「数億規模スタートアップのCTO講師」と「エンジニアキャリア専門のポテパン」が贈る、実践型Rubyスクール。

【Python入門】continue文での繰り返しの方法とは?

【Python入門】
Pocket

Pythonのループ文は同じ処理を何度も繰り返し行うのに便利です。そんなループ文ですが、繰り返しの中で、ある条件の時だけ実行し、それ以外の時はスキップしたい時があると思います。そんな時には、continue文を使うと便利です。今回は、continue文の使い方について説明します。

continue文の使い方

continue文は、for文などの繰り返しを行う処理の中で使われます。continue文を使うと、それ以降の処理が実行されずにスキップされ、次のループに進みます。

実行結果

5
6
9
11

この例では整数のリストの中から要素を取り出し、5より大きい要素だけを表示しています。その際に、数字が5未満の場合はcontinue文を実行するようにしています。continue文が実行されると、それ以降の内容がスキップされて次のループへ進みます。そのため、最後の要素が5未満の場合は最後のprint()がスキップされ、表示されないようになっています。

単純な処理の場合は、if-else文や例外などで実現することができますが、コードが長くなると見づらく複雑なものになってしまいます。ループ文の中で処理をスキップしたいときは、continue文を使うとよいでしょう。

while文におけるcontinue文

さきほどはfor文でcontinue文を使いましたが、同じループであるwhile文でも同じようにcontinue文を使うことができます。

実行結果

5
6
9
11

こちらはさきほどのfor文をwhile文で置き換えたものです。少し複雑になってしまいましたが、要素が5未満の場合はcontinue文を実行し、残りの処理をすべて飛ばす、ということに関してはfor文の場合と全く同じです。

continue文で多重ループを抜ける

Pythonでは、ループ文を途中から抜ける構文としてbreak文が用意されています。

実行結果

ループ文を抜けました(ループ回数:50回)

このfor文ではループを100回繰り返しますが、if文でループ回数が50回に到達したらbreak文でループを抜けるようにしています。break文を使えば、ループを簡単に抜けることができます。しかし、break文の場合は1つのループを抜けることが出来ても、多重ループを抜けることはできません。

実行結果

1
5
7
10
10以上の数字が見つかりました
6
8
5

この例では、2次元のリストの中身を多重ループで参照し、もし10以上の要素があればそこで表示を終了するようにしています。ところが、break文では1つのループしか抜けることができません。そのため、この例では内側のループだけを抜けてしまうので全体のループが終了しません。

実は、Pythonには多重ループを抜けるための方法は用意されていません。多重ループを一気に抜けたい場合は、自分で実装を考える必要があります。方法はいくつかありますが、実はcontinue文と、if文でもおなじみのelse節を組み合わせることで多重ループを一気に抜けることができます。

実行結果

1
5
7
10
10以上の数字が見つかりました

この方法なら、キレイにループを抜けることが出来ました。まず、内側のfor文を回すのですが、最後にelse節があります。for文のelse節は、ループが終わった後に最後に実行されます。内側のループが終わると、else節に移動し、continue文が実行されます。continue文が実行され、最後のbreakはスキップされるのでループが続行されます。
もし、内側のループでif文が実行される(この例だと10以上の数字が見つかる)と、breakで内側のループ文を抜けるので、else節は実行されません。そのため最後のbreakが実行され、ループ全体を抜けることができます。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

おすすめスクール

システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ システムアーキテクチュアナレッジでは、ITスクールとしては珍しく正規雇用かつ現役のエンジニアが講師を務めています。「責任を持ったIT教育」をテーマに、未経験者をプロフェッショナルに育てます。
ページ上部へ戻る