【Python】while文(ループ)でのcontinue文とbreak文の使い方

while break continue eyecatch image

while文内でよく使われるcontinuebreakの使い方についてまとめています。前回の記事でwhile文(ループ)での基本的な作り方や使い方をまとめました。今回はその続きです。

目次

break文の使い方

break文はwhile文やfor文のブロック内で使われます。そして、breakに処理が到達するとbreak以降の処理が停止され、ループを終了させる役割があります。よくif文と共に使われ、if文がTrueの時にループ処理が停止するように使われる事が多いです。

Python
i = 0
while i < 5:
    if i == 3:
        break
    print(i)
    i += 1

''' 
【実行結果】
0
1
2

上記コード例では次のような流れで処理が進みます。

  1. 変数iに0が代入されます
  2. 2行目のwhile文の条件式で真偽判定がされます。
  3. i <= 5は真(True)なので、ループ処理が開始されます。
  4. 続いて、if文の真偽判定がされます。i == 3は偽(False)なので、if文のブロックはスキップされます。
  5. 0が出力されます。
  6. i1が加算された値が代入されます。
  7. whileループの始め(2行目)に戻ります。
  8. 以下、上記2)~6)を繰り返します。
  9. 上記2)~6)を繰り返し、変数i3になります。
  10. 2行目のif文の真偽判定になります。i= 3なので真(True)が返るので、if文内のブロックの処理が実行されます。
  11. 3行目のbreakが実行され、ループ処理が終了します。

continue文の使い方

continue文はそれ以降のコードをスキップして、ループの先頭に戻ります。continue文もif文と一緒に使われる事が多いです。

Python
i = 0
while i < 5:
    if i == 3:
        continue
    print(i)
    i += 1

'''    
【実行結果】
0
1
2

上記コード例では次のような流れで処理が進みます。

  1. 変数i0が代入されます。
  2. 2行目のwhile文の条件式で真偽判定がされます。
  3. i <= 5 は真(True)なので、ループ処理が開始されます。
  4. 続いて、if文で真偽判定がされます。i == 3は偽(False)なので、if文のブロックはスキップされます。
  5. 5行目のブロックのprint()関数により0が出力されます。
  6. i1が加算された値が代入されます。
  7. whileループの始め(2行目)に戻ります。
  8. 以下、上記2)~7)が繰り返されます。
  9. 上記2)~7)を繰り返し、変数i3になります。
  10. 3行目のif文で真偽判定がされます。i = 3なので真(True)が返るので、if文のブロックが実行されます。
  11. continueが実行され、whileループの先頭に戻ります。
  12. 以下10)と11)が繰り返され、出力されるのは0,1,2となります。

3以外が出力されるには?

上記コード例では、012しか出力されませんでした。ただ、i == 3の時だけ出力をスキップして、i <= 5を満たす全ての値は出力されるようには、どのようにしたらよいのでしょうか。

下記コード例のようにif文のブロック内に i += 1を記述するとi == 3の時もi1を加算した値を代入する事ができ、whileループを進める事ができます。

Python
i = 0
while i < 5:
    if i == 3:
        i += 1
        continue
    print(i)
    i += 1
    
'''
【実行結果】
0
1
2
4
5
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次