前回は「条件分岐(if文)」を使って、“もし〇〇なら〜する”という判断を学びました。
今回は、同じ処理を何度も繰り返す「繰り返し処理(ループ)」について学びましょう。
これは「情報Ⅰ」の中でも、実際のプログラミングに直結する大切な内容です。
■ なぜ繰り返し処理が必要なの?
次のようなコードを考えてみましょう。
print(f"こんにちは")
print(f"こんにちは")
print(f"こんにちは")
print(f"こんにちは")
print(f"こんにちは")
5回だけならいいですが、100回表示したいときにすべて書くのは大変です。
そこで登場するのが「繰り返し処理」です。
■ for文の基本形
Pythonで最もよく使う繰り返し構文が「for文」です。
for i in range(5):
print(f"こんにちは")
結果:
こんにちは
こんにちは
こんにちは
こんにちは
こんにちは
これで「5回くり返す」ことができました!
■ for文のしくみ
for i in range(5): は「0から4までの5つの数字を順番に i に代入して繰り返す」という意味です。
| 回数 | i の値 |
|---|---|
| 1回目 | 0 |
| 2回目 | 1 |
| 3回目 | 2 |
| 4回目 | 3 |
| 5回目 | 4 |
💡 ポイント:ここがよく混乱するところです!range(5) と書くと、5回くり返されますが、iの値は0〜4までになります。
つまり、「回数(5)」と「iの最後の値(4)」には1のズレがあるのです。
「0からスタートして、指定した数の手前まで」がPythonの基本ルール。
例えば、range(3)なら「0, 1, 2」までの3回になります。
もし「1から5まで繰り返したい」場合は、次のように範囲を指定します👇
for i in range(1, 6):
print(i)
結果:
1
2
3
4
5
💬 ここでは、range(1, 6) が「1以上6未満」を意味しています。
このように「終わりの数は含まれない」というのがPythonのrange()の特徴です。
💡 また、print(f"{i}") と書いても同じ結果になりますが、
ここでは 数値だけを表示 しているので、よりシンプルに print(i) と書いています。
f-string(f"...")は、これまで「文字と数値を一緒に表示するとき」に使ってきましたが、
実はこのように数値だけを出す場合にも使えます。
ただし今回は、より読みやすくするために基本形の print(i) を使っています。
■ for文 × if文(組み合わせて使う)
繰り返しと条件分岐を組み合わせると、より実用的になります。
for i in range(1, 11):
if i % 2 == 0:
print(f"{i}は偶数です")
結果:
2 は偶数です
4 は偶数です
6 は偶数です
8 は偶数です
10 は偶数です
💡if i % 2 == 0: の意味
%は「割り算のあまり」を求める演算子です。i % 2は「i を2で割ったあまり」。- それが
0のときは「2で割り切れる」=「偶数」です。
つまり、
「もし i が偶数なら、そのときだけ表示する」という条件を意味します。
■ while文の基本形
次に、「while文」です。
これは「条件がTrueのあいだ、ずっとくり返す」構文です。
count = 0
while count < 5:
print(f"こんにちは")
count = count + 1
結果:
こんにちは
こんにちは
こんにちは
こんにちは
こんにちは
💡 while文のしくみをくわしく説明!
1️⃣ count = 0
→ まず、変数countに0を代入します。
2️⃣ while count < 5:
→ ここがくり返しの条件です。
「count が 5 より小さい(True)あいだは、下の処理を繰り返す」という意味になります。
3️⃣ print(f"こんにちは")
→ 条件がTrueのとき、この行が実行されます。
4️⃣ count = count + 1
→ countを1増やします。これがないと、countがずっと0のままで、永久に止まらない無限ループになります。
5️⃣ そしてまた while count < 5: に戻ってチェック!countが5になると count < 5 はFalseになり、くり返しを終了します。
このように、while文は「条件が成り立つあいだ動き続ける」のが特徴です。for文は「回数で決める繰り返し」でしたが、while文は「条件で決まる繰り返し」と覚えましょう。
■ 無限ループに注意!
while文では、条件がずっとTrueのままだと止まりません。
while True:
print(f"止まりません!")
このような場合は、Google Colabの「停止」ボタン(■)を押しましょう。
■ for文をネスト(入れ子)にする
プログラムの中で、for文をもう一つのfor文の中に書くことを「ネスト(入れ子)」といいます。
ネストを使うと、繰り返しの中でさらに繰り返すことができます。
■ 九九を表示してみよう!
for i in range(1, 10):
for j in range(1, 10):
print(f"{i} × {j} = {i * j}")
結果(途中まで):
1 × 1 = 1
1 × 2 = 2
1 × 3 = 3
(中略)
2 × 1 = 2
2 × 2 = 4
2 × 3 = 6
(中略)
9 × 9 = 81
「for文をネスト」して、
外側の i が1のときに j が1〜9まで繰り返され、
その後 i=2 のときにまた j=1〜9 が動く、という仕組みです。

■ まとめ
| 構文 | 説明 |
|---|---|
| for文 | 回数を決めて繰り返す |
| while文 | 条件がTrueのあいだ繰り返す |
| range() | 繰り返し回数や範囲を指定する |
| if + for | 条件つきの繰り返しができる |
| ネスト | 繰り返しの中に繰り返しを入れる |
■ 次回予告
次回は、データをまとめて扱う「リスト(配列)」について学びます!
複数のデータをスマートに処理できるようになりますよ。