continue文を使った繰り返し処理のスキップ

while 文や for 文の繰り返し処理の中で continue 文を使用すると残り繰り返し処理をスキップして条件式の判定へ進めることができます。ここでは while 文や for 文で continue 文を使った繰り返し処理のスキップ方法について解説します。

(Last modified: )

continue文を使った繰り返し処理のスキップ

while 文や for 文のブロックの中で continue 文が実行されると繰り返し処理がスキップして条件式の評価まで処理が移ります。

continue

continue 文は if 文と組み合わせて次のような使い方をします。

for 変数 in イテラブルオブジェクト:
    実行する文1
    実行する文2

    if 条件式:
        continue

    実行する文3

for 文であればリストやタプルなどのイテラブルオブジェクトに含まれる要素の数だけ繰り返しブロック内の処理を実行しますが、ブロック内で if 文を記述し、 if 文の条件式が真になった時は continue を実行するように記述します。 continue 文が実行されるとブロック内の if 文以降にある「実行する文3」は実行されずに for 文でイテラブルオブジェクトから次の要素を取り出すところまで処理がスキップします。

具体的に次のような例で考えてみます。 for 文でリストから要素を順に取り出し値を画面に表示します。ただし要素の値が文字列だった場合はスキップして次の要素の取得を行います。

for val in [3, "ab", 7]:
    if isinstance(val, str):
        continue
    print("val = " + str(val))

print("End")

この時実行される流れは次のようになります。

 1) 変数 val にリストから要素を1つ代入 (val は 3)
 2) if の条件式で val のデータ型が文字列型か調べる --> 偽
 3) 変数 val の値を出力
 4) 変数 val にリストから要素を1つ代入 (val は "ab")
 5) if の条件式で val のデータ型が文字列型か調べる --> 真
 6) ブロック内の残りの文はスキップ
 7) 変数 val にリストから要素を1つ代入 (val は 7)
 8) if の条件式で val のデータ型が文字列型か調べる --> 偽
 9) 変数 val の値を出力
10) "End" を出力

このように continue 文を使用することで、特定の状態の時にブロック内のそれ以降の処理をスキップさせることができます。

サンプルコード

次のサンプルを見てください。

total = 0
for num in [35, 25, "OK", 45, "Pass", 28]:
    if isinstance(num, str):
        continue
    print("num = " + str(num))
    total += num

>> num = 35
>> num = 25
>> num = 45
>> num = 28

print("Total = " + str(total))

>> Total = 133

リストの中の数値の要素だけを画面に出力し、最後に数値の合計を出力します。リストから要素を取得したときに文字列だった場合は continue 文でスキップしています。

-- --

while 文や for 文で continue 文を使った繰り返し処理のスキップ方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。