【Python・制御構文】~while文~②
スポンサードリンク
おはようございます!Shotaです。今日も早速Pythonに関する記事を書いていきます。今日はwhileの中で使うelseとcontinue、breakについて詳しく解説していこうと思います。
【目次】
else
whileには「else」が用意されています。elseはwhileの条件文がFalseだった場合の処理を行います。
試しに以下のコードを書いて実行してみましょう。
#最大約数を求めるプログラム num = 10456047 n = num // 2 print('---計算開始') while num % n !=0: n -= 1 else: print('解けました') msg = f'{num}の最大約数:{n}' print(msg)
今のプログラムは、最大の約数を調べるプログラムです。実行すると、以下のようコマンドプロンプトに出力されます。
whileで、「num % n !=0」という条件をチェックします。つまり、numがnで割り切れない場合は繰り返すという条件です。この条件で抜け出す際に、elseのprint文を実行していきます。
continue, break
continueやbreakは繰り返しの処理をスキップしたり、中断したりする時に使われます。
continue:その場で「次の繰り返し」に進むための構文です。この命令より後はすべて省略され、次の繰り返しに進みます。
break: 処理を途中で中断します。これがあると、その場で繰り返しから抜け出して次に進みます。
試しに、両者の使い方を以下のコードで試してみましょう。
#continue、break lst = [] n = 1 while n <= 10: if n % 3 == 0: n += 1 continue elif n == 8: break else: lst.append(n) n += 1 print(f'lst = {lst}')
上のプログラムは、1から10までの条件のもとで、3の倍数ではない数字をリストに格納するプログラムです。
これをコマンドプロンプトで実行すると、以下のように出力されます。
上のコマンドプロンプトを見ると、10の数まで出力されていないことがわかります。
なぜwhileの処理が最後まで行われないのか、次に説明します。
if n % 3 == 0: n += 1 continue
この部分で「nが3の倍数である」という条件でnに1を足した後、continueを用いてwhileのループにもっていきます。
elif n == 8: break
この部分で、nが8の場合の時に処理を中断してwhileのループから抜け出しています。
このように、continueとbreakは繰り返す処理を継続させたり、中断させたりするのです。
まとめ
【本日のまとめ】
- elseはwhileを抜け出す時に実行する処理を実行する
- continueは、次の繰り返しの処理に進む
- breakは、構文を抜けて次に進む
本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。
この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!
明日はリスト内包表記について解説していきます。
今日も最後まで読んでくださりありがとうございました!
【参考図書】