Python の 繰り返しを覚えよう while 編
プログラム言語の基本構文の一つ、繰り返しを学びましょう。
別の回ではfor文の説明をしました。今回はwhile文について学習をしてみましょう。
この構文を学習するために以下の事前知識があるとより理解しやすくなります。
while文で繰り返しの特徴
for文の場合、コレクションが前提にあって、あらかじめ繰り返される回数が決まっているという特徴がありました。
whileの場合は、一定の条件になるまで繰り返します。
そのため、条件を満たすことができない繰り返しを作ってしまうと、永久に終わらなくなってしまう(無限ループ)ことになります。
まずは構文を見てみましょう。
while 条件式:
処理
条件が真(true)の間、有効となります。
処理はwhile直下からのインデントが続く間を繰り返しのブロックとして実行されます。
偽(false)になると処理を抜けて次に遷移します。
実際のプログラムは以下の通りになります。
i = 0
while i < 5:
print(i, end=",")
i += 1
まず、変数 i
に 0
がセットされます。
次の行で i < 5
の時は繰り返し続けるという条件でwhile
文を定義します。
i
に 1
が繰り返すたびに加算され、条件を満たさなくなったら、while文のブロックから抜けます。
実行結果です。
0,1,2,3,4,
繰り返しを途中で抜けたい
途中で抜ける場合break文を使用します。
i = 0
while i < 5:
print(i, end=",")
if i == 3:
break
i += 1
iが3の場合はbreakしますので実行結果は以下のようになります。
0,1,2,3,
特定の条件で繰り返しを一時中断して次の値から続けたい
途中で抜けるのではなく、処理を中断して次の値から実行したい場合はcontinue文を使用します。
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(i, end=",")
この結果は
1,2,4,5,
となります。
以下のように書くと無限ループになります。無限ループになった場合、制御できませんのでプログラムを強制停止することになります。
i = 0
while i < 5:
print(i, end=",")
if i == 3:
continue
i += 1
i
が3
の時、繰り返しの最初に戻ってしまうため、i+=1
に永久にたどり着けなくなります。
i <5
の条件を外れることが無いため無限ループになります。
Tetsuya Ikezawa
(7 months ago)