こんにちは。高校情報の未来予想図です。
「反復構造」のwhile
文をしっかり理解できていますか?
この記事では、プログラミングの基本であるwhile
文を初心者にもわかりやすく解説します。
効率よく繰り返し処理を学べば、プログラムの幅が広がること間違いなし。
定期テストや共通テストの対策にも役立ててください!
while文ってなに?
while文は、指定した条件が「True」の間、繰り返し処理を実行するための構文です。
「何回繰り返すか分からないけれど、ある条件を満たすまで処理を続けたい」ときに便利です。
while文の基本構文
while 条件:
繰り返したい処理
- 条件が
True
の間、処理が実行されます。 - 条件が
False
になると、while文は終了します。
具体例:1から5までの数字を表示する
次に、while文を使って1から5までの数字を表示してみます。
num = 1
while num <= 5: # 条件: numが5以下である間
print(num) # numを表示する
num += 1 # numを1増やす
コードの動き
- 最初に
num
の値は1です。 num <= 5
の条件をチェックします。最初はTrue
なので処理を実行します。print(num)
で1が表示されます。num += 1
でnum
が2になります。- 再び条件をチェックし、
True
なので次の処理を実行します。 - この繰り返しを続け、最後に
num
が6になった時点で条件がFalse
となり、ループが終了します。
出力結果
1
2
3
4
5
while文のポイント
- 条件が
False
にならないと永遠にループし続けるので注意してください。(無限ループといいます) - 例えば、
num += 1
を忘れると、num
がずっと1のままで無限ループになります。
while文の演習問題
演習1:10から1までのカウントダウン
10から1までカウントダウンし、最後に「発射!」と表示するプログラムを書いてみましょう。
答え
num = 10
while num > 0: # numが0より大きい間繰り返す
print(num) # numを表示
num -= 1 # numを1減らす
print("発射!") # ループが終了したら表示
プログラムの動き
- 最初に変数
num
に10
を代入します。これがカウントダウンのスタート地点です。 while num > 0
という条件をチェックします。ここでは、「num
が0より大きい間だけ繰り返し処理を実行する」という意味です。- 条件が
True
(つまり、num
が0より大きい)である場合:print(num)
でnum
を表示します。num -= 1
でnum
を1減らします。
- 条件が
False
(つまり、num
が0以下)になると、while
文のループが終了し、次のprint("発射!")
が実行されます。
出力結果:
10
9
8
7
6
5
4
3
2
1
発射!
演習2:合計を計算するプログラム
1から10までの合計を計算して表示するプログラムを書いてみましょう。
答え
num = 1
total = 0
while num <= 10:
total += num # totalにnumを足す
num += 1 # numを1増やす
print("合計:", total)
プログラムの動き
- 初期値の設定
num = 1
: 繰り返し処理のカウンタとしてnum
を1に設定します。total = 0
: 合計を保存するための変数total
を0に設定します。
- 条件のチェック
while num <= 10:
で、num
が10以下である間だけ処理を繰り返します。
- 累積加算
total += num
は、total = total + num
と同じ意味です。- 現在の
num
の値をtotal
に加えて、合計を更新します。
- カウンタの更新
num += 1
で、次のループに進むためにnum
を1増やします。
- 最終結果の表示
- ループが終了した後、
print
で合計値を表示します。
- ループが終了した後、
出力結果:
合計: 55
発展問題
発展問題:条件付きの数列表示
1から100までの数字のうち、3の倍数だけを表示するプログラムを作りましょう。
答え
num = 1
while num <= 100: # 100以下の間繰り返す
if num % 3 == 0: # 3で割り切れる場合
print(num) # 表示
num += 1 # numを1増やす
プログラムの動き
- 初期値の設定
num = 1
で、変数num
に1を代入します。ここがスタート地点になります。 - 条件のチェック
while num <= 100:
で、num
が100以下である間だけ処理を繰り返します。条件が満たされなくなったらループが終了します。 - 条件判定
if num % 3 == 0:
で、num
が3で割り切れるかを確認します。この部分が条件式です。 - 出力
条件が満たされた場合にprint(num)
で現在のnum
を表示します。 - 変数の更新
num += 1
で、次のループに進むためにnum
を1増やします。
出力結果:
3
6
9
...
96
99
まとめ
- while文は「条件がTrueの間、処理を繰り返す」というループです。
- 使い所: ループの終了条件が事前に決まっていない場合や、条件を柔軟に設定したい場合に便利です。
while
文とfor
文を使い分けながらプログラムを作る練習をしてみましょう!
コメント