while文による繰り返しは、条件を指定してその条件が真の間は繰り返し処理が実行できるものです。
今回はプログラミングを学ぶにおいて、避けては通れないwhile文による繰り返し処理について解説したいと思います。
【基礎】while文とは
【基礎】for文との違いとは
【基礎】while文の使い方
【発展】while文の中でif-else文、break文を使う方法
【発展】無限ループを抜ける方法
繰り返し処理の中でもwhile文は基本中の基本なのでぜひ覚えておきましょう。
※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
while文とは
while文は、繰り返しが必要な処理をするための構文です。
for文との違い
Pythonの繰り返し処理にはfor文もあります。
for文は回数を指定して、指定した回数のループが完了すればループを抜けます。
一方while文は、条件を指定して、その条件がFalseになればループを抜けます。
つまり条件がTrueの間、ループ処理を続けるのがwhile文です。
for文とwhile文のそれぞれで、何を基準にループをしているのかが分かれば、while文をfor文に、またその逆の変換も出来ますね。
for文の使い方についてはこちらの記事をご覧ください。
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文をはじめ、繰り返し処理に関する知識をどんどん深めて行ってくださいね。
本記事の内容以外にPythonの入門知識を学びたい人は以下の記事も合わせてお読みください。
Pythonでできることや学習法、需要や将来性までまとめています!
【Python入門完全攻略ガイド】