条件を満たすまで繰り返す (while文)

for文は「5回繰り返す」「リストの中身を全部見る」など、回数が決まっている時に使いました。 それに対して、「いつ終わるかわからないけど、ある条件を満たしている間はずーっと繰り返す」のが while(ホワイル)文です。

while文の基本

RPGゲームで、「敵のHPが0になるまで(=HPが0より大きい間は)攻撃を続ける」というような状況にピッタリです。

while_test.py
Loading...

💡 while文を失敗させない「3つのルール」

while文を書く時は、必ず以下の3つがセットになっているか確認しましょう。

  1. スタート地点を作る: hp = 3 (最初の状態を決める)
  2. 条件(ゴール)を決める: while hp > 0: (いつまで続けるか)
  3. 毎回の変化(カウントダウン)を書く: hp = hp - 1 (これが重要!)

🚨 恐怖の無限ループ

上のコードで、もし hp = hp - 1 という行を書き忘れたらどうなるでしょうか?
HPはずっと3のままなので、hp > 0 という条件が永遠に True(マル)になり続け、プログラムが永遠に止まらなくなります。これを無限ループと呼びます。

※もし無限ループに陥って画面が固まってしまったら、ブラウザのタブをリロード(再読み込み)して強制終了させてください😱

途中で抜け出す (break)

基本的には条件を満たすまで回り続けますが、「ある特別なことが起きたら、今すぐループをやめて外に出たい!」という時があります。
その時は break (ブレイク) という魔法の言葉を使います。

break_test.py
Loading...

🎯 練習問題:カウントダウン!

変数 timer を使って、3, 2, 1, 0, 発射! とカウントダウンするプログラムを作ってみましょう。
timer が 0以上の間 while ループを回し、毎回 timer を 1 ずつ減らしていきます。

practice_while.py
Loading...