Python

【Python】while文を使ったループ処理

この記事では、Pythonのwhile文の使い方について解説します。

while文は、指定した条件式がTrueの間だけブロック内の処理を繰り返し実行する構文です。なので、イテラブルを使ってループ処理するfor文とは異なった使い方ができます。

また、その性質から無限ループとして使われることが多々あります。

それでは、while文の使い方を見ていきましょう!

while文の使い方

while文は、以下のように使用します。

while 条件式:
    # 繰り返す処理

指定した条件式がTrueの間、ブロック内の処理が繰り返されます。先に条件式が評価されるため、1度もブロック内が処理されないこともあります。

サンプル

以下のコードは、i3未満の間、繰り返し処理されます。

i = 0

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

実行結果

0
1
2

ループが終わる時の処理

else節を定義することでwhile文の条件式が偽だった場合、else節の処理を実行してからループを終了するようにできます。

i = 0

while i < 3:
    print(i)
    i += 1
else:
    print("終了")

実行結果

0
1
2
終了

つまりは、ループが終わる直前にやっておきたい処理を定義できます。

処理をスキップする

while文のブロック内にcontinue文を記述することで処理をスキップできます。以下のコードは、i3の時に処理をスキップしています。

i = 0

while i < 5:
    i += 1

    if i == 3:
        print('continue')
        continue
    print(i)

実行結果

1
2
continue
4
5

if文と組み合わせることで特定の条件の時のみ処理をスキップさせることができます。

処理を中断する

while文のブロック内にbreak文を記述することで処理を中断させることができます。以下のコードでは、i3になったら繰り返し処理が中断されます。

i = 0

while i < 5:
    i += 1

    if i == 3:
        print('break')
        break
    print(i)

実行結果

1
2
break

if文と組み合わせることで特定の条件で処理を中断させることができます。無限ループと組み合わされることがあります。

ちなみに、break文を使ってループ処理を中断した場合、else節の処理は実行されないので注意してください。

無限ループ

while文の条件式に常にTrueな値を指定すると無限ループさせることができます。

実行すると無限にループしてしまうので、ターミナルやコマンドプロンプトから実行した場合は、Ctrl + Cで実行を中止しましょう!

以下のコードは、i1ずつ増やして、それを出力し続けるだけのプログラムです。実行すると物凄いスピードで値が増えていきます。

i = 0

while True:
    print(i)
    i += 1

途中で処理を終わらせたい場合には、breakを使います。

i = 0

while True:
    if i == 3:
        break
    print(i)
    i += 1

i3になった時にbreakが処理され、while文を抜け出します。

do...while文

ほかの言語でよく使われているdo...while文はPythonには存在しません。do...while文は、条件に関わらず必ず1度は実行されるwhile文となっています。

Pythonでは、無限ループとbreakを組み合わせることで同じようなコードを実装できます。

while True:
    # なにかしらの処理
    if 条件式:
        break

例えば、以下のような感じで使います。

num = 1

while True:

    print(num)
    num += 1
    if num < 10:
        break

実行結果

1

まとめ

この記事では、Pythonのwhile文の使い方を解説しました!

何かしらの条件でループ処理したいならwhile文を使い、イテラブルオブジェクトをループ処理したいならfor文を使いましょう!

Linkfor文を使ってループ処理をする方法

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ