for文について(https://augmented-vr.com/using-for-loops-in-python/)学習しましたが、for文は「決まった回数」や「リストの要素の数だけ」繰り返すのが得意でした。しかし、回数が決まっていなくて、特定の条件を満たしている間だけ同じような処理を何度も繰り返し行いたいときがあります。そのようなときに使用するのがもう一つの繰り返し処理である「while(ワイル)文」です。

while文とは

for文が「決まった回数」繰り返すのに対し、while文は「条件がTrue(正しい)の間ずっと」繰り返すのが特徴です。

例えば、ゲームで「HPが0になるまで戦闘が続く」といった、いつ終わるか分からないけれど特定の条件を満たすまで処理を繰り返したい時に非常に便利です。

while文の基本的な使い方

Pythonでwhile文を使用するにはwhile、スペース、条件を表す式(条件式)、コロン「:」を使います。その一つ下の行にインデントをして条件がTrueの間繰り返してほしい処理のコードを書きます。
なので例としてwhile文は、

while 条件式:
    コード

の形式で書くことで定義できます。この例ではインデントは半角スペース四つで行っています。統一しているならインデントは半角スペース二つなどでも構いません。

では、実際にやってみましょう。まずは、5から1までカウントダウンするプログラムを作ってみます。
Google Colaboratoryを開いて新しいノートブックを作成し、

# カウントダウンの開始となる変数を用意
count = 5

# countが0より大きい間、繰り返す
while count > 0:
  print(count)
  # countから1を引く(これがないと永遠に繰り返してしまう)
  count = count - 1

print("スタート!")

とセルに入力して実行してみましょう。すると結果は

5
4
3
2
1
スタート!

のように表示されます。これは最初に変数countに数値の5を代入し、while count > 0:で「countが0より大きい間」という条件を設定しました。その下のインデントされた部分で、現在のcountを表示し、countから1を引いています。

これを繰り返し、countが0になった瞬間に条件を満たさなくなるため、繰り返しを終了して最後の「スタート!」が表示されます。

[ポイント]無限ループと強制終了(break)

while文を使う上で気を付ける必要があるのが「無限ループ」です。

これは、条件がいつまでもTrueのままで、プログラムが永遠に終わらなくなってしまう状態です。先ほどのカウントダウンのプログラムで
count = count – 1 を書き忘れると、ずっと5が表示され続けてしまいます。

もしGoogle Colabで無限ループになってしまったら、慌てずにセルの左側にある「■(停止ボタン)」を押して、プログラムを強制終了させてください。

途中で繰り返しを抜け出す「break文」

while文の途中で、ある特定の条件になったら強制的に繰り返しを終了させたい場合があります。そんな時はbreak(ブレイク)文を使います。

では、実際にやってみましょう。以前学習したinput()関数と組み合わせて、ユーザーが「q」と入力するまで終わらない対話型プログラムを作ってみます。

# わざと無限ループを作る
while True:
  user_input = input("何か入力してください(終了するには q を入力): ")

  # もし入力された文字が「q」だったら
  if user_input == "q":
    print("プログラムを終了します。")
    break # ここで繰り返しを強制終了!

  # それ以外の文字だったら
  print(f"「{user_input}」と入力しましたね。")

とセルに入力して実行してみましょう。「何か入力してください」と聞かれるので、好きな文字を入れてEnterを押すと、その文字が表示されてまた入力を求められます。しかし、「q」を入力してEnterを押すと、

プログラムを終了します。

と表示されてプログラムが終了します。while True: は「条件が常にTrue」なので本来は無限ループになりますが、if文とbreakを組み合わせることで、好きなタイミングで繰り返しを抜け出すことができるようになります。

まとめ

今回は、条件を満たしている間繰り返す「while文」について解説しました。

・for文との違い: for文は「決まった回数」、while文は「条件がTrueの間ずっと」繰り返す。
・while文の使い方: while 条件式: の下にインデントして繰り返したいコードを書く。
・無限ループに注意: 終了する条件を作るか、無限ループになったら停止ボタンで強制終了する。
・break文: 繰り返しの途中で強制的にループを抜け出すことができる。

状況に合わせてfor文とwhile文を上手に使い分けてみてください。

open-in-colab

今回はこれで終了です。今回のサンプルを用意したので、もし必要な場合は上の「Open in Colab」と書いてあるボタンをクリックしてください。なおそのままだと編集不可なので編集をしたい場合は「ドライブにコピー」をクリックしてコピーしてください。
なおGoogle ColaboratoryについてわからなかったらGoogleColaboratoryを使ってみよう_導入編をご覧ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA