Pythonのwhile文の使い方!無限ループの基本とbreak・continueの活用
生徒
「Pythonで同じ処理を何回も繰り返すには、どうしたらいいですか?」
先生
「その場合はwhile文という繰り返し構文を使うと便利です。条件が満たされている間、ずっと繰り返すことができますよ。」
生徒
「ずっと繰り返しって、止まらなくなったりしませんか?」
先生
「いい質問ですね。ちゃんと止める方法もありますし、止めずに無限に続けることもできます。順番に解説していきましょう!」
1. Pythonのwhile文とは?
Pythonのwhile文とは、「条件が成り立っている間、処理を繰り返す」ための命令です。たとえば、ゲームでプレイヤーの体力が残っている限りループを続ける、といった使い方ができます。
書き方はとてもシンプルです。
count = 0
while count < 5:
print("カウント:", count)
count += 1
このプログラムは、countが5未満の間だけprint()で表示し続けます。count += 1は「countに1を足す」という意味です。
カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4
2. 無限ループとは?
条件がずっとTrue(真)のままだと、while文は永遠に繰り返しを続けます。これを「無限ループ」と呼びます。プログラムが止まらなくなってしまうので注意が必要です。
例を見てみましょう。
while True:
print("これは止まりません!")
このコードは、Trueが永遠に変わらないので、プログラムがずっと止まらずに「これは止まりません!」と表示され続けます。Ctrl + Cで強制的に止める必要があります。
3. breakでループを強制終了する
break文を使うと、ループの途中でも条件に関係なくループを抜ける(終了する)ことができます。無限ループに「出口」を作るときによく使われます。
while True:
text = input("終了と入力すると終わります: ")
if text == "終了":
print("ループを終了します。")
break
print("入力内容:", text)
終了と入力すると終わります: こんにちは
入力内容: こんにちは
終了と入力すると終わります: 終了
ループを終了します。
input()関数はキーボードから文字を入力できる機能です。text == "終了"のときだけループを止めます。
4. continueでスキップする
continue文は、ループの中で次の処理をスキップしたいときに使います。ループ自体は終わらず、次の繰り返しへ進みます。
count = 0
while count < 5:
count += 1
if count == 3:
continue
print("カウント:", count)
カウント: 1
カウント: 2
カウント: 4
カウント: 5
count == 3のとき、continueによってprint()がスキップされます。「3」のときだけ表示されていません。
5. 初心者がつまずきやすいポイント
1. 条件が変わらない
ループの中で変数を更新しないと、条件がずっと同じままで無限ループになります。たとえば、count += 1を忘れると、ループが止まりません。
2. 入力のスペルミス
ユーザーからの入力と比較する文字が完全一致していないと、breakが効かず、ずっとループが続いてしまうことがあります。
3. 数字と文字列の違いinput()で受け取ったデータは文字列(テキスト)なので、数値と比較する場合はint()などで変換が必要です。
6. while文の活用例:カウントダウンタイマー
最後に、簡単なカウントダウンの例を紹介します。0になったら終了のメッセージを出すようにしましょう。
time = 5
while time > 0:
print("あと", time, "秒")
time -= 1
print("タイマー終了!")
あと 5 秒
あと 4 秒
あと 3 秒
あと 2 秒
あと 1 秒
タイマー終了!
time -= 1は「timeから1を引く」という意味です。これで、1秒ずつ減っていき、0になるとループが終わります。
まとめ
while文は「条件が続く限り繰り返す」処理の要
今回の記事では、Pythonのwhile文について、基本的な使い方から無限ループの考え方、 そしてbreakやcontinueを使った制御方法までを丁寧に学びました。 while文は、for文と並んでPythonの繰り返し処理を支える重要な構文であり、 条件が成り立っている間だけ処理を続けたい場合に力を発揮します。 回数があらかじめ決まっていない処理や、 ユーザーの入力を待ちながら動作するプログラムなどでは、 while文がとても自然な形で使われます。
for文が「要素を順番に取り出す」繰り返しに向いているのに対して、 while文は「条件が真かどうか」を基準に繰り返しを判断します。 この違いを理解することで、 プログラムの目的に応じてfor文とwhile文を使い分けられるようになります。 Python初心者にとっては、while文の方が少し難しく感じられることもありますが、 条件と変数の変化を意識すれば、決して複雑なものではありません。
無限ループと正しく向き合うことが大切
while文を学ぶうえで必ず理解しておきたいのが「無限ループ」です。 条件が常にTrueのままだと、プログラムは止まることなく動き続けます。 一見すると危険な仕組みに見えますが、 break文を組み合わせることで、意図したタイミングでループを抜けることができます。 実際のアプリケーションやツールでは、 無限ループを前提にして、ユーザーの操作や入力を待ち続ける設計も多く使われています。
大切なのは、「必ずどこかに出口を用意する」という意識です。 breakを使う条件をしっかり考え、 ループが終わるタイミングを自分でコントロールできるようになると、 while文はとても頼もしい存在になります。 無限ループは避けるものではなく、 正しく理解して安全に使うものだと考えるとよいでしょう。
breakとcontinueで処理の流れを自在に操る
breakとcontinueは、while文の動きを細かく制御するための重要なキーワードです。 breakはループそのものを終了させ、 continueはその回の処理だけをスキップして次の繰り返しに進みます。 この2つを使いこなすことで、 条件に応じた柔軟な繰り返し処理が書けるようになります。
特にcontinueは、初心者のうちは少し理解しにくいかもしれませんが、 「この場合は何もしないで次へ進む」 という考え方で捉えると分かりやすくなります。 if文と組み合わせることで、 処理の流れをすっきり整理できるようになります。
while文を使った実践的なサンプル
ここで、while文とbreakを組み合わせた簡単なサンプルプログラムをもう一度確認してみましょう。 ユーザーが特定の文字を入力するまで処理を続ける、よくある例です。
while True:
command = input("終了するには exit と入力してください: ")
if command == "exit":
print("処理を終了します。")
break
print("入力された内容:", command)
このようなコードは、対話型プログラムや簡単なツール作成で頻繁に使われます。 while文は単なる繰り返しではなく、 プログラムを「動きのあるもの」に変えてくれる存在だと言えるでしょう。
生徒「while文って、止まらなくなりそうで少し怖かったです。」
先生「最初はそう感じるよね。でもbreakを理解すると安心できるよ。」
生徒「条件が変わるかどうかを意識するのが大事なんですね。」
先生「その通り。条件と変数の変化を見れば、流れが分かるようになる。」
生徒「for文とwhile文の使い分けも、少し分かってきました。」
先生「いい調子だね。while文は実用性が高いから、ぜひ何度も書いて練習しよう。」