この記事では、Pythonのwhile文の使い方について解説します。
while
文は、指定した条件式がTrue
の間だけブロック内の処理を繰り返し実行する構文です。なので、イテラブルを使ってループ処理するfor
文とは異なった使い方ができます。
また、その性質から無限ループとして使われることが多々あります。
それでは、while
文の使い方を見ていきましょう!
while文の使い方
while
文は、以下のように使用します。
while 条件式:
# 繰り返す処理
指定した条件式がTrue
の間、ブロック内の処理が繰り返されます。先に条件式が評価されるため、1度もブロック内が処理されないこともあります。
サンプル
以下のコードは、i
が3
未満の間、繰り返し処理されます。
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
文を記述することで処理をスキップできます。以下のコードは、i
が3
の時に処理をスキップしています。
i = 0
while i < 5:
i += 1
if i == 3:
print('continue')
continue
print(i)
実行結果
1
2
continue
4
5
if
文と組み合わせることで特定の条件の時のみ処理をスキップさせることができます。
処理を中断する
while
文のブロック内にbreak
文を記述することで処理を中断させることができます。以下のコードでは、i
が3
になったら繰り返し処理が中断されます。
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で実行を中止しましょう!
以下のコードは、i
を1
ずつ増やして、それを出力し続けるだけのプログラムです。実行すると物凄いスピードで値が増えていきます。
i = 0
while True:
print(i)
i += 1
途中で処理を終わらせたい場合には、break
を使います。
i = 0
while True:
if i == 3:
break
print(i)
i += 1
i
が3
になった時に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文を使いましょう!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ