continue

ループを完全に停止するのも良いですが、今回は一度だけスキップしたい場合はどうすればよいでしょうか?特定の値に対してループの残りを実行せず、ループ自体は続けたいときは?
その場合、continue 文を使うことができます。これにより、ループの次の繰り返しに進むことができます。
numbers = [1, 5, 6, 4, 0, -4, 8, 11, 2]
even_sum = 0
for n in numbers:
    if n % 2 != 0:
        continue
    even_sum += n
    print(n)

print('Sum:', even_sum)
6
4
0
-4
8
2
Sum: 16
このプログラムは、n % 2 != 0(nが奇数である)場合に、後続の処理をスキップします。
continue はその後に続く処理を飛ばします。つまり、continue より前のコードはすべて実行されます。Pythonは continue 文に到達することで、残りの処理をスキップすることを認識します。

チャレンジ

10個の整数が与えられています。以下のすべての条件を満たす数を出力するプログラムを作成してください:
  • 奇数であること
  • [3, 7] の範囲外であること
  • [11, 13] の範囲外であること
  • [17, 23] の範囲外であること
入力
出力
12 9 6 0 1 -1 41 28 27 17
9 1 -1 41 27
ここで、[l, r]l から r までの範囲を示し、lr の両方を含みます。
ヒント
条件を満たさない場合ごとに、ループの処理をスキップすることができます(つまり、4つの if 文と continue を使い、最後に print 文を置くことができます)。
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue