
Table of Contents(目次)
1. while文の基本
for文では「要素を順番に取り出す」ことを中心に学びました。これに対して、while文は「条件が満たされている間、処理を繰り返す」という仕組みです。つまり、繰り返す回数が決まっていない場合に使われることが多いループです。
2. while文の構文
while
文は次のような構文で書きます。
while 条件式:
実行する処理
条件式がTrue
である間、ループが実行され続けます。条件がFalse
になると、ループを抜けます。次のコードではカウンタ変数を使って5回だけ繰り返す例を示しています。
count = 0
while count < 5:
print(count)
count += 1
出力例:
0
1
2
3
4
3. 処理の流れ
while文の処理の流れは次の通りです。
- 初期化(例:
count = 0
) - 条件の判定(例:
count < 5
) - 本体処理(例:
print(count)
) - 状態の更新(例:
count += 1
) - 条件が
False
になるまで繰り返す
4. 無限ループとその注意点
条件が常にTrue
のままだと、ループは永久に止まりません。これを「無限ループ」と呼びます。特に、カウンタ変数の更新を忘れた場合に、意図せず無限ループが発生します。
count = 0
while count < 5:
print(count)
# count += 1 を書き忘れた!
このコードではcount
が0のまま更新されないため、count < 5
が常にTrue
となり、プログラムが止まらなくなります。ループの中で変数が確実に変化しているか、常に確認するようにしましょう。
5. while + break / continue / else
for文と同じように、while文でもループの流れを制御するためのキーワードが使えます。
構文 | 役割 |
---|---|
break | 条件を満たしたときにループを強制終了する |
continue | その回の処理をスキップして次の繰り返しへ進む |
else | break ではなく、条件式がFalse になったことにより繰り返しが終了したときに実行される( break で抜けた場合は実行されない) |
たとえば、次のような例があります。
count = 0
while count < 5:
print(count)
if count == 10:
break
count += 1
else:
print('ループが正常に終了しました。')
出力例:
0
1
2
3
4
ループが正常に終了しました。
この場合、count
が5になり、count < 5
がFalse
になることでelse
節が実行されます。
途中でbreak
が呼ばれた場合は、else
はスキップされます。(count < 5
の部分をcount < 20
に書き換え、else
節がスキップされることを確認してみましょう。)
6. 実践例:入力を使ったwhileループ
while文は、ユーザーの入力をもとに処理を繰り返す場面でよく使われます。このような場合、while
の条件式に直接True
を指定して「無限ループ」を作ることができます。ただし、break
を使って安全にループを抜けられるようにしておきます。
while True:
password = input('パスワードを入力してください(終了する場合は"exit"と入力): ')
if password == 'exit':
print('プログラムを終了します。')
break
elif password == 'python123':
print('ログイン成功!')
break
else:
print('パスワードが違います。もう一度入力してください。')
このようにwhile True
は「繰り返す回数が事前に分からない」場面でとても便利です。ユーザーが条件を満たす(または終了を指示する)までループを続けることで、柔軟なインタラクティブ処理を実現できます。