while
文は繰り返し処理の一つです。
if
文と違ってブロック内の処理を何回も実行していきます。
[q3-adsense01]
基本構文
条件式が真の間、ブロック内の処理を繰り返します。
条件式の結果は True
か False
になります。
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
文のブロックに入れてしまっても同じことができます。
参考

Python まとめページ

前回へ戻る

次回へ進む

[q3-adsense01]
コメント
[…] 【Python入門】制御フローツール while 文の使い方 […]