本記事はPythonのwhile文を優しく解説しています。Pythonは非常に多くのエンジニアが利用する、手を付けやすい言語です。Pythonでの重要なwhile文を一緒に学習しましょう!
while文.構文
num = 0
while num < 3:
print(num)
num += 1;
【実行結果】
0
1
2
while文は繰り返し処理に利用します。
今回の例では、
0〜3まで繰り返し数字を1ずつ足し続ける処理を行っています。
基本的な構文は下のようになります。
while 条件式:
処理
ループさせるための処理
1行目の条件式について、
条件が真であれば2行目3行目の処理を実行し、もう一度1行目にループします。
ここで、
もう一度条件が真であれば2行目3行目の処理が繰り返し実行され、
条件が偽であれば4行目以降の処理に移ります。
上のサンプルコードでは、
「while num < 3:」より「num < 3」という条件式から「numが3未満まで」繰り返し実行されます。
次に「num += 1」からwhile文が繰り返されるために変数 num の変数が1加算し続けられています。
breakの使い方
num = 0
while True:
if num >= 5:
break
print(num)
num += 1
【実行結果】
0
1
2
3
4
breakは、
while文(for文などの繰り返し処理)から抜ける役割があります。
今回のコードでは、
if num >= 5:
break
上のようにbreak文が使用されており、
「もしnumが5以上なら繰り返し処理から抜ける」という意味です。
continueの使い方
num = 0
while num < 5:
if num == 3:
print('3はスキップします')
num += 1;
continue
print(num)
num += 1;
【実行結果】
0
1
2
3はスキップします
4
「continue」には、
「繰り返文の再スタート」に使用されます。
具体的には、
continueにより先のブロックの処理は飛ばします。
その後、次の繰り返しから再ループがおこなわれます。
どういうこと?
と思った人は、上のサンプルコードを見てみてください。
頭を動かしながら確認すればcontinueの処理をよく理解できると思います。
while〜else文
num = 0
while num < 3:
print(num)
num += 1;
else:
print('3以上になりました')
【実行結果】
0
1
2
3以上になりました
while文は「while 条件式:」が構文で、
条件式が真であればwhile文の処理が実行されるのでした。
「else:」を利用すると条件式が偽のときの処理を実行することができます。
これを念頭にコードを熟読すれば、マスターできるはずです。
補足知識. while文の応用(Trueの使い方)
num = 0
while True:
if num >= 5:
break
print(num)
num += 1
【実行結果】
0
1
2
3
4
while文は「while 条件式:」として利用され、
条件式が真のときにwhileの中の処理が実行されました。
「while True:」とすれば、
無条件に条件式が真であり続けます。
条件式が真であり続けたら、無限にwhile文が続くのではないか?
と思いますが、
無限に繰り返し処理が続かないために「break」を使用します。
「while True:」をつかうときは必ず「break」がセットです。
もう一度、サンプルコードを見返してみてください。
補足知識. 無限ループ
num = 0
while num < 3:
print('num')
【実行結果】
0
0
0
0
0
... (無限に0が続きます)
Pythonで上のようなwhile文を作った場合、
無限に処理が繰り返されて無限ループが起こってしまいます。
エラーにはならず、
無限での処理でコンピュータが重くなりフリーズしてしまうことがあるので気をつけましょう。
今回の場合、4行目に「num += 1」を追記すれば無限ループは行われずに済みます。
以上でPythonのwhile文(break, continue, while-else文, 無限ループ)についての解説を終わります。
最後まで読んでいただきありがとうございました\(^o^)/
Pythonの超オススメ本
この1冊でPythonのほとんどが完結する、間違いのない本ですよ\(^o^)/
つまづいたときに逆引きするPythonの辞書代わりにもなります!
PCを操作する上で、トラックボールマウスも非常におすすめです!
僕も感動したこのマウスを、騙されたと思って使ってみてください!(^^)