Skip to content

6. 繰り返し処理(for 文・while 文)

繰り返し処理はプログラミングで非常に重要な概念で、特定の処理を何度も実行する場面で使います。ここでは Python のfor文とwhile文を学びましょう。

6.1 for 文

for文は、特定の範囲やリストなどを繰り返し走査する際に利用します。 以下に基本的な構文と具体的な例を示します。

6.1.1 基本構文

for 変数 in イテラブル:
    # 繰り返し実行したい処理

6.1.2 例: リストの要素を繰り返し表示する

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

このコードはリストfruitsの各要素を順に表示します。

6.1.3 例: range による数値の繰り返し

for i in range(5):
    print(f"Count: {i}")

この例では 0 から 4 までの数値を順に表示します。range(5)は 0 から 4 までの整数を生成します。

6.2 while 文

while文は条件がTrueである間、処理を繰り返し実行します。

6.2.1 基本構文

while 条件:
    # 繰り返し実行したい処理

6.2.2 例: 条件を満たす間繰り返す処理

count = 0
while count < 5:
    print(f"Count: {count}")
    count += 1

このコードはcountが 5 未満である間に繰り返し実行されます。

6.3 break と continue

繰り返し処理において、特定の条件でループを中断したり次のイテレーションに進んだりするには、breakcontinueを使います。

6.3.1 break

breakはループを完全に抜け出すために使用します。

6.3.1.1 例: 指定の条件でループを終了

numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num == 3:
        break
    print(num)

このコードは3を見つけた時点でループを終了します。

6.3.2 continue

continueはループの現在のイテレーションをスキップして次のイテレーションに進みます。

6.3.2.1 例: 偶数をスキップ

for num in range(1, 6):
    if num % 2 == 0:
        continue
    print(num)

このコードは偶数をスキップして奇数のみを表示します。

以上が繰り返し処理の基本です。実際にコードを動かして、理解を深めてください。

演習問題

演習 1: for 文でリストを繰り返す

リスト colors = ["red", "blue", "green", "yellow"] のすべての要素を順番に出力するプログラムを作成してください。

解答例
colors = ["red", "blue", "green", "yellow"]

for color in colors:
    print(color)
# 出力:
# red
# blue
# green
# yellow

演習 2: range を使った繰り返し

1から10までの数値を順番に出力するプログラムを作成してください。

解答例
for i in range(1, 11):
    print(i)
# 出力: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

# または、もっと詳しく表示する場合
for i in range(1, 11):
    print(f"数値: {i}")

演習 3: 合計値の計算

リスト numbers = [10, 20, 30, 40, 50] の要素をすべて足し合わせて、合計を出力するプログラムを作成してください。

解答例
numbers = [10, 20, 30, 40, 50]
total = 0

for num in numbers:
    total += num

print(f"合計: {total}")
# 出力: 合計: 150

# 別解: sum関数を使う方法
print(f"合計: {sum(numbers)}")

演習 4: while 文の活用

変数 n = 1 から始めて、n が100を超えるまで2倍にし続けるプログラムを作成してください。各ステップで n の値を出力してください。

解答例
n = 1

while n <= 100:
    print(n)
    n *= 2

# 出力:
# 1
# 2
# 4
# 8
# 16
# 32
# 64

演習 5: break の活用

1から20までの数値を順番に出力しますが、10に達したらループを終了するプログラムを作成してください。

解答例
for i in range(1, 21):
    print(i)
    if i == 10:
        break
# 出力: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

演習 6: continue の活用

1から10までの数値のうち、3の倍数だけをスキップして出力するプログラムを作成してください。

解答例
for i in range(1, 11):
    if i % 3 == 0:
        continue
    print(i)
# 出力: 1, 2, 4, 5, 7, 8, 10

演習 7: 九九の表

for文を2重にネストして、九九の表(1×1から9×9まで)を出力するプログラムを作成してください。

解答例
# 九九の表を出力
for i in range(1, 10):
    for j in range(1, 10):
        print(f"{i} × {j} = {i * j}")
    print()  # 段ごとに空行を入れる

# より見やすい形式で出力する場合
for i in range(1, 10):
    row = ""
    for j in range(1, 10):
        row += f"{i * j:3} "
    print(row)