1. continue のイメージ
- ループ(
for/while)の中で使う命令です。 - 意味:「今の1回分の処理をそこで終わりにして、ループの先頭に戻る」 — ループ自体は続きます(中断はしない)。
2. 基本の書き方(短い例)
while の例(偶数だけ表示する):
i = 0
while i < 10:
i = i + 1
if (i % 2) == 1:
continue
print(i, "is even.")
Pythonこのコードの流れ(ステップ):
iを1ずつ増やす。iが奇数ならcontinue→ その回は残りの処理(ここではprint)を実行せず、ループの先頭へ戻る。- 偶数のときのみ
printが実行される(結果:2,4,6,8,10 が出力)。
3. for ループでも同じ
for x in range(5): の中で if x == 2: continue と書けば、x == 2 のときだけ処理を飛ばして 0,1,3,4 を処理できます。
4. 実践例:ユーザー入力で無効入力をスキップ
問題:ユーザーが何も入力せず Enter を押すと int('') でエラーになる。
対処:空入力だったら「無効です」と表示してその回だけスキップする — continue が便利。
counter = 1
while counter <= 10:
text = input("数字を入力してください: ")
if text == '':
print("入力が無効です")
continue # 空入力ならこの回を飛ばす
if text == '999':
print("中断します")
break # 999ならループを中断(break)
number = int(text)
print(counter, "回目:", number * number)
counter = counter + 1
print("終了しました")
Pythonこの修正で、空入力が来た回は int() の行に到達しないのでエラーを防げます。
5. 使いどころ(初心者向け・実務的な目線)
- データのフィルタリング:ループ内で「無視したいケース」を先に判定して
continueで飛ばすと、後続の処理は主目的だけに集中できて読みやすい。 - 入力チェック:無効値(空文字、形式不正など)が来たらその回だけスキップして、正常なデータだけ処理する。
6. 注意点(失敗しやすいポイント)
- 変数更新を忘れると無限ループに
whileの中でiを増やす処理をcontinueの前に置いてしまうと、次のループで同じ値になり無限ループになる場合があります。必ずループ変数が正しく更新される位置に注意する。 continueはその入っているループだけに作用する(ネストしている場合は内側のループの先頭に戻るだけ)。continueのあとに実行したかった処理があれば順序を見直す(continueはその回の残りを丸ごと飛ばすので、必要な処理が飛ばされないように設計する)。
7. continue と break の違い(簡潔)
continue:その「回」だけ中断して次の回を続ける。break:ループを完全に抜ける(終了)。
(入力例では''のときはcontinue、特別な終了入力(例: ‘999’)のときはbreakを使っています)。
8. ミニ演習
- 0〜9 をループして、3 の倍数だけ出力するプログラムを書いてください(
continueを使う)。
ヒント:if x % 3 != 0: continue→print(x)
解答例:
for x in range(10):
if x % 3 != 0:
continue
print(x)
Python- ユーザーから数値を10回入力してもらうプログラムを作る。ただし空入力は「無効」と表示して回数にカウントしない(つまり空入力の回はカウントを増やさずに再入力させる)。
continueを使って実現してください。
考え方:空入力ならcontinue(counterを増やす行の前でスキップする)。
9. よくある質問(初心者のつまづき)
- Q
continueを使うとwhileの条件チェックはどうなる? - A
continueでループ先頭に戻り、次に条件式(whileの条件)を再評価します。条件をまだ満たしていれば次の繰り返しへ。
- Q
continueとif/else、どちらが良い? - A
小さな分岐なら
if/elseでも OK。だが「無視するケースを先に判定して飛ばす」パターンはcontinueの方がネストを減らせて見通しが良くなることが多いです。
まとめ
continue= 「その回だけ飛ばしてループの先頭へ戻る」。ループ自体は終わらない。(python.jp)- 無効データを無視したり、特定条件で処理をスキップするのに便利。使うときはループ変数や必要な処理が飛ばされないように注意。
