Pythonの基礎 - 反復処理(while文)

提供:MochiuWiki : SUSE, EC, PCB
2021年11月19日 (金) 20:38時点におけるWiki (トーク | 投稿記録)による版 (文字列「<source lang="python">」を「<syntaxhighlight lang="python">」に置換)
ナビゲーションに移動 検索に移動

概要

ここでは、Pythonにおいて、条件が成立する時に反復処理(イテレーション)をするwhile文を記載する。


while文の反復処理

whileの後ろに条件式を記述して末尾にコロンを記述する。
その行の下にインデントで字下げして、実行する処理をブロックとして記述する。

<syntaxhighlight lang="python">
while 条件式:
    実行コード
</source>


以下の例では、while文の無限ループを記述している。
実行した場合は延々と"無限に処理を繰り返す。"メッセージが繰り返し表示される。
無限ループを止めたい場合は、[Ctrl]キー + [C]キーを同時押下して終了させる。

<syntaxhighlight lang="python">
while True:
    print("無限に処理を繰り返す。")
</source>


while文を使用した一般的な反復処理として次のようなサンプルコードがある。

<syntaxhighlight lang="python">
count = 0
while count < 10:
    print(count)
    count += 1
</source>



break文で反復処理を中止する

何かの条件によって途中で反復処理を中止したい場合がある。
この時、break文を使用すると反復処理を中止して処理を抜けることができる。

以下の例では、変数countが5を超えた場合(変数countが6になった場合)、while文を抜ける。

<syntaxhighlight lang="python">
count = 0
while count < 10:
    if count > 5:
        break
    print("カウントは", count, "です。")
    count += 1

# 出力
0
1
2
3
4
5
</source>



continue文で次の反復処理を行う

continue文を使用すると、特定の処理だけ行わずに再び反復処理を行うことができる。

<syntaxhighlight lang="python">
count = 0
while count < 10:
    if count > 5:
        break
    if count == 3:
        count += 1
        continue
    print("カウントは", count, "です。")
    count += 1

# 出力
0
1
2
4
5
</source>



else文とbreak文の組み合わせ

while文での反復処理が完了した後、何か別の処理を実行する場合は、else文と組み合わせる。

<syntaxhighlight lang="python">
count = 0
while count < 10:
    print("カウントは", count, "です。")
    count += 1
else:
    print("反復処理は正常に完了しました。")
</source>


次に、以下の例を見ると、break文で反復処理を抜けた場合は、else文は実行されない。
これは、break文は完全に反復処理を抜けるからである。

実務、何かキーワードを検索する処理をした時、見つかった場合はbreak文を実行して、見つからなかった場合はelse文で処理を行う場合に使用する。

<syntaxhighlight lang="python">
count = 0
while count < 10:
    if count > 5:
        break
    print("カウントは", count, "です。")
    count += 1
else:
    print("反復処理は正常に完了しました。")
</source>