クルトンのプログラミング教室

Pythonの使い方やPythonを使った競技プログラミングの解法などを解説しています。

while文の使い方【Python】

こんにちは、クルトンです!

この記事ではwhile文の使い方を解説します。

while文とは

while文は同じ処理を繰り返したいときに使われる書式のことです。


for文も繰り返し処理に使われますが、

while文は繰り返しの回数が決まっていないときに、for文は繰り返しの回数が決まっているときに使われることが多いです。

while文の書き方

while文は以下のように書かれます

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


while文では、条件式が真であれば処理が実行されます。
そしてもう一度、条件式に戻ります。
これを繰り返して、条件式が偽となると、処理が実行されずにwhile文が終了します。


これだけではピンとこないと思うので、具体的な使い方を見ていきましょう!

while文の使い方

コード

i = 0

while i < 2:
    print(i)
    i += 1

出力結果

0
1


一回目のループでは、iが0なので

  i = 0 < 2

となり、真であるため、繰り返し処理が実行されます。

    print(i)	#iが0なので0が表示される
    i += 1	#iに1が足されてi=1になる


ここでwhile文の先頭に戻ります。
このとき

  i = 1 < 2

となり、真であるため、もう一度繰り返し処理が実行されます

    print(i)	#iが1なので1が表示される
    i += 1	#iに1が足されてi=2になる


while文の先頭に戻ります。
このとき

  i = 2 < 2

となり、これは偽であるため、ここで繰り返し処理が終了します。


これがwhile文の使い方になります。


また、常に条件式が真となるような場合は無限ループに入ってしまうので注意しましょう!


i = 0

while i < 1:
    print(i)	#iが変化しないので常に条件式が真となる

continue文の使い方

特定の条件で処理をスキップしたいときには、continue文を使います。
continue文が実行されたときには、continue文以降の繰り返し処理が実行されずに次のループに移ります。

コード

i = 0

while i < 5:
    if i == 2:
        continue
    print(i)
    i += 1

出力結果

0
1
3
4


このプログラムでは、iが2のときにcontinue文が実行されます。
そのため、iが2のときは、continue文よりも後にあるprint関数が実行されないために、2だけが表示されません。

break文の使い方

途中でループを終わらせたいときには、break文を使います。
break文が実行されたときには、break文以降の繰り返し処理が実行されず、ループが終了します。

コード

i = 0

while i < 5:
    if i == 2:
        break
    print(i)
    i += 1

出力結果

0
1


このプログラムではiが2のときにbreak文が実行されます。
そのため、iが2のときは、break文よりも後にあるprint関数が実行されないために、2は表示されません。
また、break文によってループが終了しているため、3, 4も表示されません。

おまけ(for文との使い分け)

for文とwhile文をどのように使い分けるかについて説明します。

for文を知らない方はこの記事を読んでください。

kuruton.hatenablog.com


最初に一度言いましたが、while文は繰り返しの回数が決まっていないときに、for文は繰り返しの回数が決まっているときに使われることが多いです。

では具体的なケースを見ていきましょう。

繰り返しの回数が決まっているとき

Hello World!」を5回表示したいとします。
このとき

for文を使ったコード

for _ in range(5):
    print("Hello World!")


while文を使ったコード

i = 0

while i < 5:
    print("Hello World!")
    i += 1


どちらも出力内容は同じですが、for文を使ったほうがスッキリと書けているのが分かると思います。

繰り返しの回数が決まっていないとき

1, 2, 4, 8, ...という等比数列を1000以下まで表示したいとします。
このとき、1に2を何回掛ければ1000を超えるかがわからないため、繰り返しの回数が決まりません。

このような場合はfor文は使えないのでwhile文を使います。

コード

i = 1                        # 1からスタートする

while i <= 1000:             # iが1000以下であれば表示する
    print(i)
    i *= 2                   # iに2を掛ける

出力結果

1
2
4
8
16
32
64
128
256
512

このように繰り返しの回数が分からないときでも、while文を使うことで解決することができます。


ただし、この使い分けは「絶対こう使い分けるべきだ!」というものではありません
あくまでも参考程度に思ってください。(ただ一応知っておいて欲しいので「おまけ」として書いておきました。)

まとめ

  • while文は同じ処理を繰り返したいときに使われる
  • 条件式が真である限り、何度でも繰り返し処理が実行される
  • continue文によって処理をスキップし、break文によってループを終了させることができる

今回はwhile文について解説しました。

使い始めは理解するのが難しいと思うので、何度も使って慣れていきましょう!

ではまたお会いしましょう!さようなら~