Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Python・制御構文】~while文~②


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます!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)

 

今のプログラムは、最大の約数を調べるプログラムです。実行すると、以下のようコマンドプロンプトに出力されます。

 

f:id:ShotaNukumizu_1000:20210426081902p:plain

 

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の倍数ではない数字をリストに格納するプログラムです。

これをコマンドプロンプトで実行すると、以下のように出力されます。

 

f:id:ShotaNukumizu_1000:20210426084023p:plain

 

上のコマンドプロンプトを見ると、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にシェアしてくれると非常に嬉しいです!

明日はリスト内包表記について解説していきます。

今日も最後まで読んでくださりありがとうございました!

 

 

【参考図書】

gihyo.jp