Pythonのwhile文の書き方を、条件ループ・while True の無限ループ・break / continue・while-else・for文との使い分けまで実行しながら確認できます。 下のコードはブラウザ内でそのまま実行でき、「実行エディタで開く」を押すとprogoのオンラインPython実行環境にコードが読み込まれます。
n = 1
while n <= 5:
print("count:", n)
n += 1
# breakで途中終了
c = 0
while True:
c += 1
if c >= 3:
break
print("終了 c =", c)
▶ このコードを実行エディタで開く
while 条件: は条件が True の間くり返し、False になった時点で抜けます。n += 1 のように必ず値を更新します(忘れると無限ループ)。break でループを完全に抜け、continue でその回だけスキップします。total = 0
while True:
n = int(input("数値(0で終了): "))
if n == 0:
break
total += n
print("合計:", total)
入力待ちや「条件を満たすまで繰り返す」処理は while True: + break が定番です。
n = 0
while n < 10:
n += 1
if n % 2 == 0:
continue # 偶数は表示しない
print(n) # 1, 3, 5, 7, 9
# break されずに条件が False になって抜けたときだけ else が動く
n = 1
while n <= 3:
print(n)
n += 1
else:
print("正常に終了")
range()・リスト・文字列など「回数・対象が決まっている」繰り返し。条件に使う変数を更新していない、更新の向きが逆、break 条件に届かない、が主な原因です。ループ内に print(n) を入れて変数の動きを確認すると原因を特定できます。progoのエディタなら実行を止めてすぐ書き直せます。