【Python入門】制御フローツール while 文の使い方

Python
スポンサーリンク

while 文は繰り返し処理の一つです。

if 文と違ってブロック内の処理を何回も実行していきます。

[q3-adsense01]

 

スポンサーリンク

基本構文

条件式が真の間、ブロック内の処理を繰り返します。

条件式の結果は TrueFalse になります。

while 文

while 条件式:
  条件式が True の時に実行する処理

条件式が True になっている間、何度も繰り返します。

ですので条件式が変化しなければ繰り返し処理が無限に実行されてしまいます。

悪い例

>>> a = 1
>>> while a < 10:
...   print(a)
... 
1
1
1
1
^C1
Traceback (most recent call last):
  File "", line 2, in 
KeyboardInterrupt
>>> 

手動で終わらせました。

※Windows では「Ctrl + c」、Mac では「control + c」を押すと無限ループを止めることが出来ます。

a が 1 のままなので、無限に繰り返しが起こります。

繰り返していくうちに条件式が False になる式を必ず入れておきましょう。

良い例

>>> a = 1
>>> while a <10:
... print(a)
... a += 1
... 
1
2
3
4
5
6
7
8
9
>>> 

こんな感じで数字を増やしていくことで、条件式が False になります。

False になって初めてループが終了します。

else 文

while 文にも else 文が追記出来ます。

条件式が False になって while 文が終了する時に else 文が記述されていれば else 文のブロック内の処理が実行されます。

else 文は一回のみ実行します。

>>> a = 1
>>> while a < 10:
...   print(a)
...   a += 1
... else:
...   print("終了")
... 
1
2
3
4
5
6
7
8
9
終了

最後に実行するので、else 文を記述せずそのまま書いてもいいです。

しかし、else 文を追記することで「これは while 文とセットの処理」というのを明確にすることが出来ます。

 

[q3-adsense01]

ループの制御

break 文

break 文を使うことで、処理を途中で終わらすことができます。

>>> a = 1
>>> while a < 10:
...   print(a)
...   a += 1
...   if a == 5:
...     break
... else:
...   print("終了")
... 
1
2
3
4
>>> 

break 文でループを抜けると、else 文は実行されません。

通常終了したときだけ実行したい処理を else 文に記述しておけば切り分けができます。

break 文を使ったテクニック

while 文ではわざと無限ループを作り、break 文でブロックを抜けるテクニックがよく使われます。

>>> a = 1
>>> while True:
...   if a >= 5:
...     break
...   a += 1
... 
>>> print(a)
5
>>> 

条件式を Ture にすることで、無限ループを作り出しています。

if 文の条件が満たされると break 文でブロックを抜けます。

continue 文

continue 文を使うことで処理を次のループへジャンブすることが出来ます。

>>> a = 0
>>> while a < 5:
...   a += 1
...   if a == 3:
...     continue
...   print(a)
... 
1
2
4
5
>>> 

例として、a == 3 のときだけ print しないようにしました。

簡単なことなら if 文のブロックに入れてしまっても同じことができます。

参考

3. 形式ばらない Python の紹介 — Python 3.7.3rc1 ドキュメント

Python まとめページ

独学でPythonを覚えよう
今話題のプログラム言語「Python」を独学で勉強していく内容を、アウトプットします。僕が今回選んだ教材は、python.jp の Pythonチュートリアル です。このチュートリアルに沿って進んでいく予定です。言語は Pyth...

前回へ戻る

【Python入門】制御フローツール if 文の使い方
今回からいくつかの制御フローツールを見ていきます。最初は、if 文です。if 文は処理を分岐するときに使います。ある条件の場合のみ処理を実行するときなどに使います。

次回へ進む

【Python入門】制御フローツール for 文の使い方
for 文も繰り返しを行います。for 文と while 文の使い分け方が最初は難しいですが、for 文特有の書き方があるので簡単な繰り返しに使われることが多いです。

 

[q3-adsense01]

コメント

  1. […] 【Python入門】制御フローツール while 文の使い方 […]