【Python】while文の使い方を初心者向けに徹底解説!無限ループ・break・continueまで

Pythonのwhile文の使い方

※このサイトの記事内では広告を掲載している場合があります。

「同じ処理を何回も書くのは大変…」「回数が決まっていないくり返しはどうやるの?」Pythonを学び始めると、こんな疑問にぶつかりますよね。そんなときに活躍するのがwhile文です。

この記事では、while文の基本から、無限ループの注意点、breakとcontinueの使い方、for文との使い分けまでを、動くコード付きで初心者向けに解説します。現役SEの私が実務でも使う場面を交えてお伝えしますので、ぜひ最後までご覧ください。

while文とは?条件が成り立つ間くり返す構文

while文は、条件式がTrueの間、処理をくり返し実行する構文です。くり返す回数があらかじめ決まっていないときに向いています。基本の書き方は次のとおりです。

while 条件式:
    くり返したい処理

条件式の後ろには必ずコロン(:)を付け、くり返す処理は半角スペース4つでインデント(字下げ)します。インデントされている範囲が、くり返しの対象です。

while文の基本的な使い方

1〜5までを表示する

カウンターの変数を用意し、ループのたびに1ずつ増やす、もっとも基本的なパターンです。

count = 1
while count <= 5:
    print(count)
    count += 1

# 実行結果
# 1
# 2
# 3
# 4
# 5

count += 1はcount = count + 1の省略形です。この更新処理を忘れると、条件がずっとTrueのままになってしまいます(後述の無限ループです)。

1から10までの合計を求める

total = 0
i = 1
while i <= 10:
    total += i
    i += 1

print(total)  # 55

合計や累積など、「状態を更新しながら進める」処理はwhile文が得意です。関数の作り方を復習したい方は、関数(def)の作り方の解説記事も参考にしてください。

独学で伸び悩んだら、プログラミングスクールの活用も選択肢の一つです。選び方の軸はPythonが学べるプログラミングスクールの比較記事にまとめています。

無限ループに注意しよう

条件式がずっとTrueのままだと、処理が永遠に終わらない無限ループになります。次のコードは、countが更新されないため止まりません。

count = 1
while count <= 5:
    print(count)
    # count += 1 を書き忘れている → 無限ループ!

実行中に止まらなくなったときは、ターミナルでCtrl + Cを押せば強制終了できます。while文を書いたら「条件式に使う変数が、ループ内で必ず変化するか」を確認するクセをつけましょう。

breakでループを途中で抜ける

意図的に無限ループ(while True)を作り、条件を満たしたらbreakで抜ける書き方もよく使われます。ユーザー入力を受け付ける処理が代表例です。

while True:
    answer = input("終了するには q を入力: ")
    if answer == "q":
        break
    print(f"入力: {answer}")

print("終了しました")

break文とcontinue文の違いは、break文とcontinue文の解説記事で詳しく紹介しています。

continueで今回の処理だけ飛ばす

continueは、その回の残りの処理をスキップして次のくり返しに進みます。奇数だけ表示する例です。

n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print(n)

# 実行結果
# 1
# 3
# 5
# 7
# 9

continueの前にn += 1を置いているのがポイントです。更新より後ろに書くと、更新が飛ばされて無限ループになることがあります。

回数が決まっていない処理の例

たとえば「100を、1以下になるまで2で割り続ける」といった処理は、何回で終わるか事前には分かりません。こういうときにwhile文が活きます。

x = 100
while x > 1:
    x //= 2
    print(x)

# 実行結果
# 50
# 25
# 12
# 6
# 3
# 1

for文とwhile文の使い分け

  • for文:リストや範囲など、くり返す対象・回数が決まっているとき(例:for i in range(5))
  • while文:条件が満たされる間続けたいとき、終わる回数が事前に分からないとき

迷ったら、まずfor文で書けないかを考えるのがおすすめです。for文の基本はfor文・range関数の解説記事で確認できます。リストを作るだけならリスト内包表記も便利です。

もっと効率的にPythonを学びたい人へ

while文のような制御構文は、読むだけでなく自分で書いてエラーを経験すると一気に理解が進みます。とはいえ、独学だと「エラーの原因が分からない」「何から学べばよいか迷う」といった壁にぶつかりがちです。

マンツーマン指導で未経験からPythonを習得でき、転職サポートや無料カウンセリングも用意されているスクールなら、疑問をその場で解消しながら効率よく学べます。まずは無料カウンセリングで相談してみるのも一つの方法です。

※本記事には広告(アフィリエイトリンク)を含みます。

Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】

まとめ

  • while文は条件がTrueの間処理をくり返す構文
  • カウンター変数の更新を忘れると無限ループになるので注意
  • breakでループを抜け、continueで今回の処理だけスキップできる
  • 回数が決まっていればfor文、決まっていなければwhile文が基本

実際に手を動かして、カウンターの値を変えたりbreakを入れたりしながら試してみてください。

コメントを残す

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

CAPTCHA