Pythonのwhile文の基本的な使い方(ループ処理)

Pythonのwhile文の基本について解説します。

Pythonのwhile文の基本的な使い方(ループ処理)

while文は、for文と同じく、Pythonの繰り返し処理の方法の一つです。ループを回す回数が何回あるかわからない時などに利用することができます。

while文の基本的な使い方

Pythonのwhile文では、条件を指定し、その条件がTrueの間は、while文のブロック内の処理を繰り返します。while文のブロック内で条件式を更新し、条件がFalseになったらwhile文が終了します。

条件式の中では、andなどの論理演算子でより複雑な条件を指定することができます。以下の記事を参考にしてください。

# while文の基本的な使い方

# iが5以上になるまで、while文を繰り返す
i = 0
while i < 5:
    print(i)
    i += 1 # 条件式を更新する
# 0
# 1
# 2
# 3
# 4

breakでwhileのループを途中で抜ける

while文では、条件式がFalseになる以外にもループから抜ける方法が用意されています。break文をwhile文のブロック内で使用すると、while文のループが終了します。

break文は、ループから抜ける条件が複数ある場合などに利用することができます。

# break文でwhile文から抜け出す

# whileの条件式にTrueを指定しているため、
# 無限ループを回している状態だが、
# iが5以上になったらbreakで抜け出している
i = 0
while True:
    print(i)
    i += 1
    if i >=5:
        break
# 0
# 1
# 2
# 3
# 4

continueでwhileのループをスキップする

break文はwhileのループ全体から抜ける処理ですが、特定の条件のループだけスキップしたい場合にはcontinue文を利用します。while文内でcontinueを使うと、その後の処理がスキップされて次のループに移行します。

# continue文でwhileループをスキップする

# iが奇数の時はその後の処理をスキップ
i = 0
while i < 5:
    i += 1
    if i % 2 == 0:
        print("スキップしました")
        continue
    print(f"{i}は奇数です")

# 1は奇数です
# スキップしました
# 3は奇数です
# スキップしました
# 5は奇数です

elseでwhileのループ終了後の処理を実行する

while文によるループが終了した後に特定の処理を実行したいことがあります。その場合、while文と同じ階層でelse文を利用します。

if文で利用するelseと異なり、whileのループが正常に終了した場合に必ず実行されることに注意してください。

# elseでwhileループの終了後の処理を実行する

i = 0
while i < 5:
    print(i)
    i += 1
else:
    print("while文が終了しました")
# 0
# 1
# 2
# 3
# 4
# while文が終了しました

while文でbreakを使った場合には、whileのループ自体から抜けることになるため、elseブロックの内容は実行されません

# break文を使うとelseブロックは実行されない

i = 0
while True:
    print(i)
    i += 1
    if i >=5:
        break
else:
    print("while文が終了しました") # 実行されない
# 0
# 1
# 2
# 3
# 4

途中にcontinueがある場合は、whileのループは継続されるため、elseブロックの内容は実行されます

# continue文があってもelseブロックは実行される

i = 0
while i < 5:
    i += 1
    if i % 2 == 0:
        print("スキップしました")
        continue
    print(f"{i}は奇数です")
else:
    print("while文が終了しました") # 実行される

# 1は奇数です
# スキップしました
# 3は奇数です
# スキップしました
# 5は奇数です
# while文が終了しました