【Python初心者】While文を用いた繰り返し処理|基本からbreak文・continue文まで

Python学習の初期段階で出てくるWhile文。

while文は繰り返し処理に用いられるので重要なものの、いまいち理解が難しい文法でもあります。

この記事では、Pythonにおけるwhile文の書き方、while文の使用例、無限ループから抜け出すbreak文やcontinue文の意味・使い方を紹介します。

while文をマスターして、Python初心者から早く抜け出しましょう!

Pythonで使用されるWhile文とは|for文との違い

PythonにおけるWhile文は、条件式がTrueの間だけwhile節内のコードが(繰り返し)実行されます。

同じ繰り返し処理でも、for文は一定の回数だけコードを実行するという回数指定でした。

for文について学びたい人は、以下の記事も参考にしてください。

【Python初心者】forループの繰り返し処理はとりあえずこれだけ!|リストやrange関数を用いた実例もご紹介

PythonのWhile文の書き方

while文は、以下のように記述します。

while 条件式:
繰り返したいコード

①先頭にwhileを書く
②条件式を書く
③「:」を書く
④改行+インデントをして、繰り返したい処理を書く

条件式がTrueの間、④で書かれたプログラムが繰り返されます。

Pythonでは、コードのブロック下げにより、繰り返したい処理を指定することができるので、処理の最後にendを書く必要はありません

また、「:」はwhile文を書き慣れるまで記述忘れが多いので、注意しましょう。

if文内では「」や「=」などの演算子がよく用いられます。

演算子について自信がない方は、こちらの記事をチェックしてみてください。

【Python初心者】演算子の種類まとめ(算術・比較・ブール)

PythonのWhileループの使用例

ここでは、1〜100までの整数をたすプログラムを紹介します。

[code language=”python”]
i = 1 # iに1を代入
sum = 0 # sumに0を代入

while i <= 100: # iが100になるまで繰り返す
sum = sum + i # sumにiの数を足す
i = i +1 # iに1を足す

print(sum) #sumを出力
# 5050
[/code]

i = i +1を行うことによって、sumの行で足される数が1ずつ大きくなっています。

このwhile文では、iが100になるまでというのが条件式であり、iが1, 2, 3 , …, 100の間は条件式がTrueなので、その間はwhile節内のコードが実行されます。

Pythonのwhileにおける無限ループから抜け出す方法(break文・continue文)

while文の条件式がずっとTrueであれば、while節内のコードは無限に繰り返されてしまいます。
例えば、

while True:
while 1 10:

の時です。

このような無限ループをを抜け出す方法はbreak文・continue文の2つがあります。

break文 ループ節を抜け出す
continue文 ループの先頭に戻り、ループ条件式を再評価する

break文の使い方

while文は、break文に到達すると即座にwhile節から抜け出します。
break文はbreakと記述するだけです。

[code language=”python”]
i = 1 # iに1を代入
sum = 0 # sumに0を代入

while i <= 100: # iが100になるまで繰り返す
sum = sum + i # sumにiの数を足す
i = i +1 # iに1を足す
break # while節から抜け出す

print(sum) #sumを出力
# 1
[/code]
1回目のループで、breakに到達してしまうので、sumに1しか足されず、sumを出力しても1になってしまうのです。

if文と用いると、break文をより効果的に使うことができます。

[code language=”python”]
while True: # 無限ループを作成
print(‘パスワードを入力してください’) # ‘パスワードを入力してください’と出力
pw = input() # pwの入力待ち
if pw == ‘yotaro1234’: # もしpwがyotaro1234だったら
break # 無限ループから抜け出す
print(‘パスワード認証完了です’) # ‘パスワード認証完了です’と出力
[/code]

このプログラムは、正しいパスワードを入力するまで無限にパスワードをきかれるプログラムです。

if文について学びたい方は以下の記事もお読みください。
【Python初心者】if文を使った条件分岐をマスターしよう!else文やelif文の具体例も解説

continue文の使い方

while文は、break文に到達すると即座にループの先頭に戻り、条件式がTrueかどうかを再評価します。
continue文もcontinueと記述するだけです。

[code language=”python”]
i = 1 # iに1を代入
sum = 0 # sumに0を代入

while i <= 100: # iが100になるまで繰り返す
sum = sum + i # sumにiの数を足す
i = i +1 # iに1を足す
continue # i <= 100に戻る

print(sum) #sumを出力
# 5050
[/code]

文末にcontinueを記載した場合は、「条件式に戻る」という本来の文末の役割と同じなので、continue無しの時と同じように動きます。

Pythonのwhile文でelseを使う方法

if文のように、elseを使うことで、while文の条件式がFalseだった場合の処理を記述できます。

[code language=”python”]
i = 1 # iに1を代入
sum = 0 # sumに0を代入

while i <= 100: # iが100になるまで繰り返す
sum = sum + i # sumにiの数を足す
i = i +1 # iに1を足す
else:
print(sum) #sumを出力
# 5050
[/code]

このプログラムの場合は、else文を用いてもwhile節の後にprint(sum)を用いても、結果は変わりません。

違いは、break文を用いている場合に現れます。

break文は、else部分も実行されずにwhile節外の処理へと移ります。
[code language=”python”]i = 1 # iに1を代入
sum = 0 # sumに0を代入

while i <= 100: # iが100になるまで繰り返す
sum = sum + i # sumにiの数を足す
i = i +1 # iに1を足す
break # while節から抜け出す
else:
print(sum) #実行されない

print(‘ここが実行される’) # ここが実行される[/code]

最後に: while文の繰り返し処理をマスターしよう

while文は、if文やfor文と共に頻繁に使用される文法です。

この記事を読んでしっかりと復習して、使えるようにしましょう!