スライドショー

【初心者必見】Pythonのwhile文の特徴や使い方を徹底解説!

while文による繰り返しは、条件を指定してその条件が真の間は繰り返し処理が実行できるものです。

今回はプログラミングを学ぶにおいて、避けては通れないwhile文による繰り返し処理について解説したいと思います。


【基礎】while文とは
【基礎】for文との違いとは
【基礎】while文の使い方
【発展】while文の中でif-else文、break文を使う方法
【発展】無限ループを抜ける方法

繰り返し処理の中でもwhile文は基本中の基本なのでぜひ覚えておきましょう。

※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。

while文とは

while文は、繰り返しが必要な処理をするための構文です。

for文との違い

Pythonの繰り返し処理にはfor文もあります。

for文は回数を指定して、指定した回数のループが完了すればループを抜けます。

一方while文は、条件を指定して、その条件がFalseになればループを抜けます。

つまり条件がTrueの間、ループ処理を続けるのがwhile文です。

for文とwhile文のそれぞれで、何を基準にループをしているのかが分かれば、while文をfor文に、またその逆の変換も出来ますね。

for文の使い方についてはこちらの記事をご覧ください。

【Python入門】for文による繰り返し処理まとめ
更新日 : 2019年7月1日

while文の使い方

それでは早速、while文を使ってみましょう。

while文の基本的な使い方

while文の基本的な構文はこのようになります。

while 条件式:
  繰り返し実行したいコード

3回文章を表示させたい場合はこちらのようにコードを書きます。

i = 0
while i<3:
   print("Hello world!")  
   i = i +1

実行結果

Hello world! # 1回めのループ
Hello world! # 2回めのループ
Hello world! # 3回めのループ

こちらのコードでは、Hello world!という文章を3回続けて表示させてみました。

while文の条件は「変数iが3未満の場合」と設定しました。

変数iは0に初期化されています。

その為、一回目のループでは条件を満たしています。

条件を満たしていれば、whileブロックに突入します。

文章を出力した後に変数iに1が足され、これをインクリメントと呼びます。

そしてまた、whileブロックの最初に戻ります。

変数iの値が3になると、while文の条件が満たされません。

その為、whileブロックには入らず、繰り返し処理が正常に終了します。

while文とif-else文を組み合わせてみよう

これまでは簡単なwhile文ご紹介しましたが、while文の中にif-else文などを組み合わせることも出来るのです。

こちらのコードをご覧ください。

i=0
while i < 10:
    if i%2==0 :
        print(i)
    else :
        print("odd")
    i = i+1

実行結果

0
odd
2
odd
4
odd
6
odd
8
odd

上のコードでは、while文にシンプルなif-else文を含ませてみました。

while文は変数iが10未満の場合作動します。

そしてその変数iの値が2で割り切れる場合はその値を出力、そうでなければoddという文字列を出力します。

このようにwhile文内にも細かく条件を指定することも可能です。

while文の中でbreakを使ってブロックから抜けよう

今までご紹介したwhile文のサンプルコードでは、whileブロックから抜けるということはwhile文の条件が満たされなくなる、ということだとお伝えしました。

しかし、break文を使用して処理の途中でwhileブロックから抜けることが可能なんです。

こちらのコードをご覧ください。

i=0
while i < 10:
    if i == 3 :
        break
    else :
        print(i)
    i = i+1

実行結果

0
1
2

上のコードは、変数iが10未満の場合には値が出力される仕組みになっています。

しかし、変数iの値が3になるとbreak文が発動するので、実際に処理は3回目で止まってしまいました。

このように、break文はループの終了条件が多数存在する場合などに便利ですね。

無限ループから抜ける方法

無限ループとは、while文の条件が満たされ続ける為、永遠に繰り返される処理のことです。

while True:
    print("Hello!")

上のコードでは、条件式がTrueというbool値に設定されています。

その為、「Hello!」という文字列は永遠に出力され続けます。

このようなループに入った場合、WindowsとMac両方で「Ctrl + C」をキーボードで押してプログラムを強制終了させることが出来ます。

このような無限ループから抜けるには、break文を使用しましょう。

以下のコードをご覧ください。

i = 1
while True:
    if i > 5 :
        break
    i = i+1
    print("Hello!")

上のコードでは、先ほどのコードにbreak文を足してループから抜けるように設定しました。

変数iは1に初期化されているので、5回目までは正常に無限ループが作動し、「Hello!」が繰り返し表示されます。

しかし、変数iの値が5より大きくなるとbreak文が作動してループから抜ける事が出来ます。

まとめ

今回はwhile文を使用した基本的な繰り返し処理を行う方法をご紹介しました。

ぜひ覚えておいてほしいポイントは

・while文はとっても便利!if‐else文なども含めて色々活用しよう!
・for文はwhile文に簡単に変換できる!
・break文でwhileブロックから簡単に抜けよう

こんな感じですね。

皆さんもこの記事を通してwhile文をはじめ、繰り返し処理に関する知識をどんどん深めて行ってくださいね。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Kotono

Kotono

イタリア在住15年目の22歳です。イタリアの大学で情報科学&応用数学を学んでいます。主にJavaScriptやPythonについての記事を書いたりしています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説