第9章 繰り返し処理

Contents

9.1 条件を満たしている間だけ処理を繰り返す While

では、**「条件を満たしている間だけ繰り返す while ループ」**について、
for文との違いが分かるように説明します。

while ループとは?

一言で言うと👉 条件が True の間、ずっと処理を繰り返す仕組みです。
while 条件:繰り返したい処理

日常の例で考える

眠くない間は起きている
→ 眠くなったらやめる

これが while の考え方です。

基本例(数字を繰り返す)

i = 0
while i < 5:
    print(i) i += 1

実行の流れ
i < 5 をチェック
True → 中を実行
i += 1
再び条件チェック
False になったら終了

for文との違い(重要)

比較 for while
回数 決まっている 未定
条件 自動 自分で管理
用途 繰り返し回数が分かる 条件次第で続ける

よくある使い道①:入力待ち

while True:
    s = input("qで終了: ")
    if s == "q":
        break

👉 ユーザー操作待ちに最適

break(強制終了)

while True:
    print("実行中")
    break

👉 条件に関係なく ループを抜ける

continue(次へ)

i = 0
while i < 5:
    i += 1
    if i == 3:
        continue
    print(i)

👉 その回だけ処理をスキップ

無限ループに注意!

❌ 危険な例

while True:
    print("止まらない")

⭕ 終了条件を必ず用意

while True:
    if 条件:
        break

よくある初心者ミス

❌ 条件が変わらない

i = 0
while i < 5:
    print(i) # iが変わらない!

👉 永遠に終わらない

実用例:正しい入力が来るまで待つ

while True:
    age = input("年齢を入力: ")
    if age.isdigit():
        break
print("入力OK")

まとめ(ここだけ覚えればOK)

while = 条件がTrueの間くり返す
回数が決まらない処理に使う
終了条件が必須
break / continue をよく使う

覚え方

「いつ終わるか分からないなら while」

9.2 リストや辞書から順に値を取り出す for

では、**「forループで使うリスト/辞書とは何か?」**を
for文の動きが直感的に分かるように解説します。

forループとは

一言で言うと

👉 **「中身を1つずつ順番に取り出して処理する」**のが for ループです。

その 取り出される元のデータ が
リスト
辞書
などの 複数データ(コレクション) です。

forループ × リスト

リストとは?

👉 順番に並んだ複数の値

fruits = ["りんご", "みかん", "バナナ"]

for文で使うと

for fruit in fruits:
    print(fruit)

動きのイメージ

fruit = "りんご"
fruit = "みかん"
fruit = "バナナ"

👉 リストの要素が1つずつ変数に入る

forループ × 数値リスト(超定番)

numbers = [1, 2, 3, 4, 5]
for n in numbers:
    print(n * 2)

forループ × 辞書(基本)

辞書とは?

👉 キーと値のセット

person = {
"name": "田中",
"age": 30,
"city": "東京"
}

辞書を for で回す(キー)

for key in person:
    print(key)

👉 デフォルトはキー

キーと値を両方使う(最重要)

for key, value in person.items():
    print(key, value)

値だけ使う

for value in person.values():
    print(value)

リストと辞書の for の違い

データ型 forで取り出されるもの
リスト
辞書 キー
辞書 + items() キーと値

よくある初心者の疑問

Q. なぜ range も使える?

for i in range(5):
    print(i)

👉 range() も **「繰り返せるデータ」**だから
(中身は 0,1,2,3,4)

実用例①:合計を求める

total = 0
scores = [80, 70, 90]
for s in scores:
    total += s
print(total)

実用例②:辞書で条件判定

scores = {"math": 80, "eng": 55}
for subject, score in scores.items():
    if score < 60:
    p rint(subject, "は不合格")

forで使える共通ルール

順番に取り出せるものなら使える
リスト/辞書/文字列/range
1回ずつ変数に代入される

まとめ(ここだけ覚えればOK)

for文は 中身を1つずつ処理
リスト → 値を順番に
辞書 → キー(またはキー+値)
items() は超重要

覚え方
「for は箱の中を1個ずつ見る」
「リストは中身、辞書は名前付き」

9.3 指定された回数だけ処理を繰り返す range

では、**「指定された回数だけループする range とは何か?」**を
for文との関係を中心に分かりやすく解説します。

range とは?

一言で言うと👉 **「連続した数値を自動で作ってくれる仕組み」**です。

主に forループで回数を指定したいとき に使います。

一番基本の形

for i in range(5):
    print(i)

実行結果
0 1 2 3 4

ポイント

5回繰り返す
数字は 0から始まる
5は含まれない

range の正体

range(5)

これは実際には👇のような数列を意味します。

0, 1, 2, 3, 4

👉 「0 〜 4まで」

range の書き方は3種類

① range(回数)

range(5)

0 〜 4

5回ループ

② range(開始, 終了)

for i in range(2, 6):
    print(i)
2
3
4
5

👉 開始は含む/終了は含まない

③ range(開始, 終了, 増加量)

for i in range(0, 10, 2):
    print(i)


0
2
4
6
8

👉 2ずつ増える

なぜ「終了の数」は含まれない?

理由👇

回数計算がしやすい

配列(リスト)の番号と相性が良い

items = ["a", "b", "c"]
for i in range(len(items)):
    print(items[i])

range はリストではない

r = range(5)
    print(r)

range(0, 5)

👉 軽量な「繰り返し専用オブジェクト」

リストにしたい場合👇

list(range(5))

よくある使い方

指定回数だけ処理したい

for _ in range(3):
    print("Hello")

👉 _ は「使わない変数」の意味

カウントダウン

for i in range(5, 0, -1):
    print(i)

for × range の関係まとめ

書き方 意味
range(n) n回繰り返す
range(a, b) a〜b-1
range(a, b, c) cずつ増減

初心者が混乱しやすい点

❌ range(1,5) → 1〜5
⭕ 実際は 1〜4

まとめ(ここだけ覚えればOK)

range は 回数指定用
0から始まる
終わりの数字は含まれない
for文とセットで使う

覚え方

「range=回数を作る道具」
「最後は含まれない」

9.4 強制的にループを中断する break

**「ループを中断する break とは?」**について解説します。

break とは?

一言で言うと👉 ループ処理を途中で強制終了する命令です。

for ループ
while ループ
の 中で使います。

基本的な使い方

for i in range(10):
if i == 5:
break
print(i)

実行結果

0
1
2
3
4

👉 i == 5 になった瞬間、ループが完全に終了します。

break がない場合との違い

break なし

for i in range(5):
    print(i)
print("終了")

👉 最後まで必ず実行

break あり

for i in range(5):
    if i == 3:
        break
    print(i)
print("終了")

👉 途中で抜けてから次の処理へ

while ループでの break(超重要)

while True:
    s = input("qで終了: ")
    if s == "q":
        break

👉

while True → 無限ループ
break → 終了条件

この組み合わせは 非常によく使われます。

日常の例でイメージ

探し物をしていて
見つかったら → 探すのをやめる

これが break の役割です。

break と continue の違い(重要)

命令 動作
break ループを終了
continue その回だけスキップして次へ

continue の例

for i in range(5):
    if i == 2:
        continue
    print(i)

0
1
3
4

👉 ループ自体は続く

break は if と一緒に使う

for n in numbers:
    if n < 0:
        break

👉 条件を満たしたら中断

ネスト(入れ子)時の注意

for i in range(3):
    for j in range(3):
        if j == 1:
            break
        print(i, j)

👉 break は 一番内側のループだけを抜けます。

よくある初心者ミス

❌ ループの外で使う

break # エラー

⭕ ループの中で使う

while True:
break

まとめ(ここだけ覚えればOK)

break = ループを途中でやめる
for / while の中で使う
if と一緒に使うのが基本
無限ループの出口として重要

覚え方

「break=脱出ボタン」

9.5 ループの現在の周回をスキップする continue

では、**「スキップして次の周回を継続する continue とは何か?」**を
break との違いがはっきり分かるように解説します。

continue とは?

一言で言うと👉 **「今の周回の残り処理を飛ばして、次の周回へ進む命令」**です。

ループ自体は 終わらない
その回だけ 処理をスキップ

基本的な使い方
for i in range(5):
    if i == 2:
        continue
    print(i)

実行結果
0
1
3
4

👉 i == 2 のとき
print(i) が 実行されずに次へ進みます。

continue が実行される流れ

① 条件チェック
② continueに入る
③ その回の残りは全部スキップ
④ 次のループへ

break との違い(超重要)

命令 動作
break ループを終了
continue その回だけ飛ばす

比較例

break

for i in range(5):
    if i == 2:
        break
    print(i)

0
1

continue

for i in range(5):
    if i == 2:
        continue
    print(i)

0
1
3
4

while ループでの continue

i = 0
while i < 5:
    i += 1
    if i == 3:
        continue
print(i)

1
2
4
5

⚠ continue の前後で変数更新を忘れないこと

よくある使い道①:条件外を飛ばす

for n in numbers:
    if n < 0:
        continue
    print(n)

👉 負の数は無視する

よくある使い道②:入力チェック

while True:
    s = input("数字を入力: ")
    if not s.isdigit():
        print("数字ではありません")
        continue
    break

👉 正しい入力だけ受け付ける

ネスト(入れ子)時の注意

for i in range(3):
    for j in range(3):
        if j == 1:
            continue
        print(i, j)

👉 continue は
一番内側のループだけに効きます。

よくある初心者ミス

❌ continue をループの外で使う
❌ while で continue 後にカウンタ更新を忘れる
→ 無限ループの原因

まとめ(ここだけ覚えればOK)

continue = その回だけスキップ
ループは 続行される
条件外の処理を飛ばすのに便利
break とは役割が全く違う

覚え方

break=脱出
continue=読み飛ばし

コメント