【Python】while文を使って繰り返し処理を行う!サンプルコード付き!

処理を繰り返す仕組みにwhile文(whileループ)があります。
for文もまた、繰り返し処理ですが、while文とは少し異なります。

forループは「回数を指定して」処理を繰り返すものですが、whileループは「条件式がtrueである限り」処理を繰り返します。

「条件式がtrueを返したら」という条件で処理を繰り返す場合、繰り返す回数は不明なのでforを使うことはできません。
一方でwhileループは指定した条件が成立する限り、処理を繰り返します。

今回はwhile文の繰り返し処理について解説します。

whileとは

先ほども言いましたが、whileループは「条件式がtrueである限り」処理を繰り返します。
例えば、条件式が「n == 1」とすれば、変数nの値が1である限り処理を繰り返し、「n != 1」とすれば変数nの値が1でない限り処理を繰り返すようになります。

whileの書き方

while文の構文は以下のようになります。

whileを使ったサンプルコード

出力結果

数字 = 0
数字 = 1

条件式がtrueである場合は、変数numが0と1なので0と1の場合に処理が実行されています。

whileの基本的な使い方

while文の基本的な使い方について紹介します。

処理を強制終了する(break)

breakを使用すると、while文の途中で処理を強制的に終了することができます。

出力結果

num = 0
num = 1
num = 2
num = 3
num = 4
終了

処理をスキップする(continue)

continueを使用すると、それ以降の処理をスキップし、ブロックの先頭に戻ります。

出力結果

数字 =2
数字 =3
数字 =5
数字 =6
数字 =7
数字 =8
数字 =9
数字 =10
終了

繰り返し処理終了後に処理を行う(else)

elseを使うと、while文のループが終わった後に何らかの処理を行うことができます。

出力結果

数字 = 1
途中合計 = 1
数字 = 2
途中合計 = 3
数字 = 3
途中合計 = 6
数字 = 4
途中合計 = 10
数字 = 5
途中合計 = 15
数字 = 6
途中合計 = 21
数字 = 7
途中合計 = 28
数字 = 8
途中合計 = 36
数字 = 9
途中合計 = 45
最終合計 = 45
終了

無限ループを回避する

無限ループとは繰り返しが永久に終わらない処理のことをいいます。
無限ループはbreakを使うことで抜け出すことが可能になります。

出力結果

無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
終了

while文の応用的な使い方

ここでwhile文の応用的な使い方を見てみましょう。

多重ループを使って九九の表を作成

多重ループを使って九九の表を作成してみます。

出力結果

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

while not とは

whileの条件文には否定のnotを使って作成することができます。
この場合、notで否定された条件を満たすまで繰り返して処理を行います。

while notの書き方

while notの構文は以下のようになります。

例えば、条件式が「n == 1」とすれば、変数nが1ではない限り処理を繰り返します。

while notを使ったサンプルコード

出力結果

数字 = 0
数字 = 1
数字 = 2
数字 = 3
数字 = 4
数字 = 5
数字 = 6
数字 = 7
数字 = 8
数字 = 9
数字 = 10

while文とfor文の違い

冒頭でも説明しましたが、Pythonの繰り返し処理にはfor文もあります。
for文は回数を指定して処理を繰り返します。
一方while文は、条件式がtrueである限り処理を繰り返します。
つまり、決まった回数分、ループ処理を続けるのがfor文で、条件がtrueの間、ループ処理を続けるのがwhile文となります。
for文とwhile文で、何を基準にループ処理をしているのかが分かるようになると、while文をfor文を区別して使用することができます。

for文について詳しく知りたい場合は【Python】for文(for in)で繰り返し処理を行う!書き方や使い方を徹底解説!をご参考ください。

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報