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
までの範囲を示し、l
と r
の両方を含みます。
ヒント
条件を満たさない場合ごとに、ループの処理をスキップすることができます(つまり、4つの if
文と continue
を使い、最後に print
文を置くことができます)。
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB