前回までは繰り返し処理において代表的な処理の一つのfor文について解説してきました。今回はもう一つ代表的な書き方であるwhile文について確認していきます。
while文とは
while文とはある条件が真である間ずっと処理を続ける繰り返し処理です。whileとは日本語で「その間」という意味ですが、Trueである間は処理を実行し続けるよということです。Falseになったら処理を抜けます。

for文はオブジェクトデータに対して繰り返し処理を実施するものでしたが、while文は条件を指定して実施するという違いがあります。リストなどのデータを操作したいのか、またはある条件下の間だけ処理を続けたいのか、状況に応じて使い分けてください。
while文の書き方
while文の書き方は以下のようになります。

while文はfor文よりも単純な記述で、while文の後ろに条件式を書くだけです。if文と同じ構造ですね。あとはいつもながらにインデントでブロックを定義し、その中に繰り返し対象とする処理を記載します。
while文の例
それでは実際にプログラムを確認します。
1 2 3 4 5 6 7 8 |
a = 0 #a が10以下の場合処理を続ける while a < 10 : print("まだ規定に達していません") a += 1 print("aが" + str(a) + "に達しました。") |
while文でもよくあるカウント変数を用意し繰り返すごとにカウントアップし、カウント変数が規定以上になったら処理を抜けるといった処理ですね。その他にも数値を計算していってある閾値を超えたら処理を終えるだとか、リストの中身がある値の間は処理し続けるだとか色々できますので、試してみてください。
最後に条件式が永久にTrueを満たす場合どうなるかについて考えます。例えば条件式に直接Trueをセットします。
1 2 |
while True: print("処理が止まらないよ~") |
条件式はTrue以外になりようがないので永久に「処理が止まらないよ~」という文章が出力され続けます。これが所謂「無限ループ」という状態です。こうなった処理はタイムアウトだとかそういった設定をしていない限りは処理が永久に終わらないので、メモリリークといったエラーを引き起こします。無限ループになることは基本的には避けたいはずですので自分が設定した条件がずっとTrueになってしまわないか注意しておきましょう。
今回はここまでです。
お疲れ様でした。
コメント