Python 基礎 第5回 while文を用いた 繰り返し文

目次

whileを用いた 繰り返し文

第4回では、for文を用いた 繰り返し文 を紹介しました。

第5回では、while文を用いた繰り返し文の別の形式を学んでいきましょう。while文の方が表現できる幅が広い分、使いこなす難易度が少し高いです。

while文の基本

サンプルコードを見てみましょう。

month = 1

while month <= 12:
    print(month, "月")
    month += 1

このコードを実行すると、

1月

2月

3月

…(4月~11月は省略)

12月 

のように、1月から12月までが順番に出力されます。while文の基本は、

while 条件 :

というシンプルな構文です。条件部分に記述される内容がTrueである限り、コロン以下のブロックで指定した部分を何度でも繰り返し処理することが出来ます。しかしここで大きな注意点があります。

繰り返しのどこかで終了してくれる条件を指定する必要がある

先ほどのサンプルコードであれば、繰り返しブロックが実行されるたびに month += 1 も実行されるため、monthの値が13になった段階で「month <= 12」という条件式がFalseになり、繰り返しが終了してくれます。

では、以下のようなコードを記述したとしたらどうなってしまうでしょうか。

month = 1

while month <= 12:
    print(month, "月")
month += 1

このコードを実行すると、ターミナルには

1月

1月

1月

というように、1月という出力がされ続けることになります。

原因は month += 1 という記述がインデントされておらず、繰り返し時に実行するブロックに含めてないためです。while文の処理が永遠に繰り返されて、プログラムが終了しなくなってしまうため十分な注意が必要となります。

今回の変数 month のように、while文において繰り返し回数を制御している変数を「カウンタ変数」と呼びます。カウンタ変数の設定を間違えてしまうと無限ループとなってしまいますが、うまく使いこなせれば下記のように、「繰り返し回数に上限がない」柔軟なプログラムを作成することもできます。

decision = False

while decision == False:
    answer = int(input("2 × 3 + 1 は?>>"))
    if answer == 7:
        print("正解です!繰り返しを終了します。")
        decision = True

このコードを実行すると、input() によって変数 answer に 7 が代入されるまで何度も繰り返してくれるプログラムを作ることが出来ます。answer に7が代入されているときのみに条件を満たすif文に、カウンタ変数 decision を True に書き換えてくれるコードを記述しているからです。

このような応用を身に着けることで、多彩な繰り返し文を作成することが出来るようになります。いろいろなコードを作成してみましょう。

Python に関するその他の記事はこちらから。

(Visited 56 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社NEUGATEは、都内で企業研修や職業訓練を運営している会社です。主に、IT系の教育事業に力を入れています。
この記事は、株式会社NEUGATEの教育事業部が執筆をしています。

企業ホームページ:https://neugate.co.jp/

コメント

コメントする

目次