【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文の構文は以下のようになります。
1 2 |
while 条件式: 条件式が真の時に実行する処理 |
whileを使ったサンプルコード
例
1 2 3 4 |
num = 0 while num < 2: print("数字 = ", num) num = num + 1 |
出力結果
数字 = 0
数字 = 1
条件式がtrueである場合は、変数numが0と1なので0と1の場合に処理が実行されています。
whileの基本的な使い方
while文の基本的な使い方について紹介します。
処理を強制終了する(break)
breakを使用すると、while文の途中で処理を強制的に終了することができます。
例
1 2 3 4 5 6 7 8 9 |
num = 0 while num < 6 : print("num = " + str(num)) num += 1 if num > 4: break; print("終了") |
出力結果
num = 0
num = 1
num = 2
num = 3
num = 4
終了
処理をスキップする(continue)
continueを使用すると、それ以降の処理をスキップし、ブロックの先頭に戻ります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
num = 1 while num < 10 : num = num + 1 if num == 4: continue; print("数字 =" + str(num)) print("終了") |
出力結果
数字 =2
数字 =3
数字 =5
数字 =6
数字 =7
数字 =8
数字 =9
数字 =10
終了
繰り返し処理終了後に処理を行う(else)
elseを使うと、while文のループが終わった後に何らかの処理を行うことができます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
num = 1 sum = 0 while num < 10: print("数字 = " + str(num)) sum += num print("途中合計 = "+ str(sum)) num += 1 else: print("最終合計 = "+ str(sum)) print("終了") |
出力結果
数字 = 1
途中合計 = 1
数字 = 2
途中合計 = 3
数字 = 3
途中合計 = 6
数字 = 4
途中合計 = 10
数字 = 5
途中合計 = 15
数字 = 6
途中合計 = 21
数字 = 7
途中合計 = 28
数字 = 8
途中合計 = 36
数字 = 9
途中合計 = 45
最終合計 = 45
終了
無限ループを回避する
無限ループとは繰り返しが永久に終わらない処理のことをいいます。
無限ループはbreakを使うことで抜け出すことが可能になります。
例
1 2 3 4 5 6 7 8 9 10 |
num = 0 while True: print("無限ループ中") num += 1 if (num ==10): break print("終了") |
出力結果
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
無限ループ中
終了
while文の応用的な使い方
ここでwhile文の応用的な使い方を見てみましょう。
多重ループを使って九九の表を作成
多重ループを使って九九の表を作成してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
i = 1 j = 1 while i <= 9: j = 1 while j <= 9: print(i*j,end = " ") j = j + 1 i = i + 1 print("\n") |
出力結果
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の構文は以下のようになります。
1 2 |
while not 条件式: 条件式が真の時に実行する処理 |
例えば、条件式が「n == 1」とすれば、変数nが1ではない限り処理を繰り返します。
while notを使ったサンプルコード
例
1 2 3 4 5 |
num = 0 while not num > 10: print("数字 = ", num) num = num + 1 |
出力結果
数字 = 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)で繰り返し処理を行う!書き方や使い方を徹底解説!をご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。