【初心者向け】6章 while文での繰り返し【Python】

Python

繰り返し文とは

繰り返し文は条件を満たしている間、処理が繰り返されます。

例えば、1から10までを表示する処理があったとします。
この時、繰り返し文を使用しなければコードの量が多くなります。これが1000まで表示するだったら気が遠くなることは間違いないです。


コード

# 1から10までを足す。
print("1")
print("2")
print("3")
print("4")
print("5")
print("6")
print("7")
print("8")
print("9")
print("10")


これを繰り返し文で書くと簡単に書くことができます。


コード

# 変数宣言
count = 1

# 1から10までを表示する。
while count <= 10:
    print(count)

    count = count + 1

print("終了")


もし1000回まで足すとなった場合、「while count <= 10」 の 10 を 1000 に変更するだけで終わります。


繰り返し文の書き方には2通りあります。

・while文
・for文


この章ではwhile文について解説します。

while文の書き方

while文の書き方以下の通りです。

while 条件式:
    処理1
    ....
    処理2
処理3


while文は処理1の実行前に条件式のチェックが行われます。この時 True の場合は処理1が実行され、whileのブロック内最後の処理(処理2)が実行された後、再び条件式のチェックに戻ります。
条件式で False となると、処理1と処理2は実行されずに処理3が実行されます。

先ほど例に挙げた1から10までを表示するプログラムの処理の順番に見ていきます。

1.変数宣言
2.条件式( count <= 10 )のチェックを行う。
3.countの値が 1 であるため、True となる。
4.whileのブロック内の処理が実行される。
5.条件式のチェックを行う。
6.countの値が 2 であるため、True となる。
7.whileのブロック内の処理が実行される。
8.条件式のチェックを行う。

29.条件式のチェックを行う。
30.countの値が 10 であるため、True となる。
31.whileのブロック内の処理が実行される。
32.条件式のチェックを行う。
33.countの値が 11 であるため、False となる。
34.whileのブロック内の処理が実行されず、print(“終了”)が実行される。
35.処理終了


またif文の時と同様に、以下の点に注意してください。

1. while の最後に コロン( : ) をつける
2. while内の処理は インデント する。

無限ループになった時の対処法

while文を書いていると、条件式の部分がずっと True になってしまい、無限ループになってしまうことがあります。その時の場合に備えて無限ループの止め方を覚えておきましょう。

無限ループになった時の止め方は以下の通りです。

Windowsの場合は、ctrl + c
Macの場合は、 control + c を押す。


押しても止まらない場合は、一度ターミナルの部分をクリックして、もう一度ボタンを押してみてください。


無限ループになる例を挙げます。


コード

# 変数宣言
result = 0
count = 1

# 1から10までを足す。
while count >= 1:
    result = result + count
    
    count = count + 1

print(result)


この場合ですと、条件式が countが1以上なら になっているので、ずっと True になってしまい、無限ループに入ってしまいます。

練習問題

問題1
1 から 10 までを足した結果を表示するプログラムを作成せよ


コード

# 変数宣言
result = 0
count = 1

# 1から10までを足す。
while count <= 10:
    result = result + count
    
    count = count + 1

print(result)


※ コードは解答例です。正解は一つではありません。


問題2
1 から 10 のうち、奇数のみを足し算した結果を出力するプログラムを作成せよ。


最初は

①1 から 10 までを足すプログラム
②奇数どうかを判別するプログラム

と分けて考えてみましょう。


①問題1で作成したプログラムになります。


奇数というのは 2 で割ると 1 余る数字です。
 奇数かどうかを判別するので、「もし奇数なら」と条件分岐で表現します。


2つのプログラムができたら、合体させましょう。


コード

# 変数宣言
result = 0
count = 1

# 1から10までを足す。
while count <= 10:
    
    # countが奇数なら足し算を行う
    if count % 2 == 1:
        result = result + count
    
    count = count + 1

print(result)


※ コードは解答例です。正解は一つではありません。