くり返しとデータの持ち方

INPUT · スライド

途中でやめる・その回だけ飛ばす

01 / 07

途中でやめたい

点数を上から順に見ていって、合格者が1人見つかったらそこで終わりにしたい。残りを見る意味はもう無いよね。

くり返しを途中で打ち切る言葉が break(ブレイク)。「中断する」という意味だよ。

02 / 07

break の形

break はそれ1語だけで1行になる。実行されたらその場でくり返しから抜けて、下げていない行へ進むよ。

下の例では i が 3 になったところで抜けるので、3 は表示されない。range(10) と書いてあるのに3回しかまわっていないね。

for i in range(10):    if i == 3:        break    print(i)print("おわり")

実行結果

0
1
2
おわり

03 / 07

見つけたら終わり、という形

break がいちばん活きるのは探しものだよ。目当てのものが見つかったら、その先を見る必要は無いからね。

下の例では "みかん" が見つかった時点で打ち切っている。"ぶどう" は見に行かれもしないよ。

for kudamono in ["りんご", "みかん", "ぶどう"]:    print(kudamono)    if kudamono == "みかん":        break

実行結果

りんご
みかん

04 / 07

continue はその回だけ飛ばす

もう1つの言葉が continue(コンティニュー)。こちらはくり返しをやめない。

その回の残りだけを飛ばして、次の回へ進むんだ。下の例では 2 のときだけ print が飛ばされていて、3 と 4 はちゃんと出ているね。

for i in range(5):    if i == 2:        continue    print(i)

実行結果

0
1
3
4

05 / 07

2つのちがい

似ているようで、やることはまるで別だよ。

  • break … くり返しそのものをやめる。二度と戻らない
  • continue … その回を打ち切るだけ。次の回は動く

「もう用はない」なら break、「今回はパス」なら continue。迷ったら、そのあとの回に用があるかどうかで決めよう。

06 / 07

while と break を組み合わせる

break は while でも使える。条件では書きにくい終わりかたを、中から指示できるんだ。

ただし注意。break に頼りすぎると、どこで終わるのかが読みにくくなる。条件で素直に書けるなら、そちらを選ぼう。

kazu = 0while kazu < 100:    print(kazu)    if kazu == 2:        break    kazu += 1

実行結果

0
1
2

07 / 07

字下げを浅く保つ道具でもある

continue には、もう1つうれしい効果があるよ。

「この条件のときは何もしない」を if で囲むと、そのあとの処理がまるごと1段深くなる。でも continue で先に弾いてしまえば、残りの処理は浅いままでいられるんだ。

便利だけれど、どちらも多用すると流れが追いにくくなる。1つのくり返しに1つまでを目安にするといいよ。