• break、continue文

    breakとcontinue文について学んでいきましょう。

    breakは、ブロックを抜ける時に使う

    まずはbreakです。break文はブロックを一気に抜ける時に使います。

    メモリのイメージで見てみましょう。

    break文のイメージ

    while文がはじまり、ブロックの中のコードが実行されていきますが、3番地のbreak文が実行されると、一気にブロックを抜けて7番地のコードが実行されます。

    (if文はwhileブロックに含まれていますので、実行されません。)

    continueは、ブロックの途中でbreakするようなイメージ

    breakよりもcontinueの方がイメージがわきづらいと思います。

    これもメモリのイメージを使いながら理解していきましょう。

    continue文のイメージ

    while文の中のコードが順番に実行されていきますが、3番地のbreakにくると、後に命令が残っていてもまた1番地に戻ります。

    ですので、continue文はある条件の時に処理を飛ばしたい時に使われます。

    実際のコードを見て、イメージをつかみましょう。

    continue文の場合、間違っているコードを見るとイメージがわきやすいので、まずは間違ったコードを書いてみます。

    コード
    

    1 number = 0

    2 while number < 5:

    3     if number = 3:

    4         continue

    5     print(number)

    6     number += 1

    アウトプット
    

    0

    1

    2

    このコードを実行したところ、0と1と2しか表示されません。while文の条件は、numberが5になるまでとしていたのですが、何がまちがっていたのでしょうか。

    このコードで間違えている部分は、変数numberに1を足している所です。

    順番にコードを見て確認していきましょう。

    コードの解説
    

    (1) 1行目で、変数numberに0を代入しています。

    (2) 2行目からwhile文です。変数numberが5未満であればコードを実行するという条件にしています。1行目でnumberに0を代入しましたので、while以下のコードが実行されます。

    (3) 3行目はif文です。numberは0ですので、条件には合致せず、if文は実行されません。

    (4) if文が実行されませんので、次は5行目のprint関数が実行されます。結果、0が出力されます。

    (5) 6行目で、numberが1増えますので、numberには1が入ります。

    (6) 再び1行目に戻ってwhile文が実行されます。ここからは、numberが3になったとして、次のコードを見ていきましょう。

    (7) 3行目のif文において、numberが3ですので4行目のコードが実行されます。

    (8) 4行目はcontinue文です。これは、while文に戻るという意味ですので、5行目以降のコードは実行されず、再び1行目に戻ります。

    この時、numberは3のままです。

    (9) while 文で条件判定が行われますが、numberは3ですので次のif文が実行されます。

    (10) 以下、if文→continue文→while文が繰り返し実行され続けます。

    つまり、while文の条件判定をするコードは、continue文の前に書かないといけないのです。

    正しいコードと、その出力結果をみてみましょう。

    コード
    

    1 number = 0

    2 while number < 5:

    3     number += 1

    4     if number = 3:

    5         continue

    6     print(number)

    アウトプット
    

    1

    2

    4

    5

    まちがっていたコードとの違いは、number += 1が書かれている場所です。

    この文をwhileの次の行に書くことによって、continue文が実行された場合でも(while文に戻っても)numberが足されるので、正しい結果をえることができました。

    break・continue文のまとめ

    (1) break文はブロックをそのまま抜ける

    (2) continue文はwhileに戻す

    (3) continue文を使う時は、whileの条件分岐をcontinueの前に書かなければいけない

    break・continue文を学んだ後は

    基礎的な学習はこれで完了です。お疲れ様でした。次は関数について学んでいきましょう。