こんにちは!kumoriのお部屋へようこそ。
プログラミングでは、同じ処理を何度も繰り返す場面がよくあります。
そんなときに役立つのが「ループ」という存在です!
本記事では、ループの概要から、種類、構文、活用例までわかりやすく解説します。
それでは、いきましょう!
注意点
本記事は、Pythonでのループの解説になるので、多言語と性質が異なることがあります。
プログラミング学習のロードマップはこちら!
ループとは、「繰り返し処理を簡単にする」方式
ループとは、特定の処理を繰り返し実行するプログラムの構造のことです。
プログラムでは、同じ処理を何度も繰り返すことがよくあります。
例えば、次のような場面を考えてみましょう。
要件:「1から10までの数字を順番に表示したい」
「手作業」で書いた場合(Python)
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
今回は「1から10まで」だったので少しの労力で書けましたが、
100回、1000回繰り返す場合に、すべて手動で書くのは現実的ではありません。
そこで登場するのが 「ループ」 です。
「ループ」で書いた場合(Python)
for i in range(1, 11):
print(i)
このように、「ループ」を使えば、たった2行で簡潔します!
ループが適用される部分は「インデント」で決まる。
Pythonでは、インデント(字下げ)された部分が「ループの中の処理」になります。
for i in range(1, 4):
print(i) # ← ここはループの中(インデントあり)
print("終了") # ← インデントがないのでループの外
黄色マーカーの部分がインデントです。
次は、ループの種類について詳しく解説していきます!
ループの種類(for、while、do-while)
ループには 「繰り返し方の違い」 によって、主に3つの種類に分かれます。
ループの種類 | 繰り返し方 |
---|---|
for文 | 決まった回数 繰り返す |
while文 | 条件が満たされている間 繰り返す |
do-while文 | 最低1回は実行し、その後条件をチェック(Python にはない) |
それぞれの特徴と使い方を詳しく見ていきましょう!
① for文
for 文は、「決められた回数だけ処理を繰り返す」 仕組みです。
while 文と違い、繰り返す回数が事前に分かっている場合に使われます。
基本形(Python)
for 変数 in 繰り返す対象:
実行する処理
- 変数 → 繰り返すごとに値が変わる「カウンター」の役割
- 繰り返す対象 → ループで扱うデータ
- 実行する処理→繰り返す内容
繰り返す対象をもっと詳しく
繰り返す対象とは、「for 文が順番に取り出して使うデータ」のことです。
- range(1, 6) →「1から5までの数字を順番に取り出す」
※range()の仕様上、終了値(6)は含まれない。
- リスト [“apple”, “banana”] →「リストの中の単語を順番に取り出す」
- “hello” → 「文字列を1文字ずつ順番に取り出す」
for 文は、この繰り返す対象からデータを一つずつ取り出して処理を繰り返します。
さらに、コード例を用いて詳しく解説します。
要件:「1から5までの数字を表示したい」
コード(Python)
for i in range(1, 6):
print(i)
出力結果
1
2
3
4
5
処理の流れ(ステップごとの動き)
- 「range(1, 6)」 が 1 から 5 までの数字を順番に作る(6は含まれない)
- 「for 文」が range(1, 6) から 1つずつ値を取り出して i に代入する
- print(i) が実行され、i の値が表示される
- ループの先頭に戻る(次の i を取得)
i = 6 になると range(1, 6) の範囲外なのでループ終了
② while 文
while 文は、「条件を満たしている間だけ処理を繰り返す」 仕組みです。
for 文と違い、繰り返す回数が決まっていない場合に使われます。
基本形(Python)
while 条件:
実行する処理
仕組み
- 条件が
True
かチェックする
True
なら ループの中の処理を実行する
- 再び条件をチェック し、
True
ならループを続ける
- 条件が
False
になるとループ終了
さらに、コード例を用いて詳しく解説します。
要件:「1から5までの数字を表示したい」
コード(Python)
i = 1
while i <= 5:
print(i)
i += 1
出力結果
1
2
3
4
5
処理の流れ(ステップごとの動き)
- i = 1 でスタート
- 条件 i <= 5 をチェック(True のためループ開始)
- print(i) を実行し、i の値を表示
- i += 1 で i を 1 増やす
- ループの先頭に戻り、再び i <= 5 をチェック
i = 6 になると 条件が False になりループ終了
do-while 文(Pythonにはありません)
do-while文は、
「最低1回は必ず処理を実行し、その後、条件を満たす限り繰り返す」 仕組みです。
通常の while 文は、最初に条件をチェックし、「True」の場合のみ実行される仕組みですが、
do-while 文は 「必ず1回は処理を実行する」 という特徴があります。
Pythonには現状、「do-while 文」は使えないため、説明はここまでにしておきます。
それぞれのループに得意な場面があるので、適切に使い分けることが大切です。
ループの用途は、多い
ループは、さまざまな場面で役立ちます。
例えば、以下のような用途で活用されます。
買い物リストの商品を順番に表示する(for文)
コード(Python)
shopping_list = ["りんご", "バナナ", "オレンジ"]
for item in shopping_list:
print("買うもの:", item)
出力結果
買うもの: りんご
買うもの: バナナ
買うもの: オレンジ
処理の流れ
- shopping_list から1つずつ 「item」 に値を代入する
- print() で 「item」の値を表示
- ループの先頭に戻る(次の値を取得)
すべてのリスト要素を処理したらループ終了
1から5までの合計を求める(while文)
コード(Python)
i = 1
total = 0
while i <= 5:
total += i
i += 1
print("合計:", total)
出力結果
合計: 15
処理の流れ
- i = 1 でスタート、total = 0(初期値を設定)
- 条件 i <= 5 をチェック(True のためループ開始)
- total += i を実行し、i の値を total に足す
※「+=」は、「現在の値に新しい値を足して更新する記号」です。
- i += 1 で i を 1 増やす
- ループの先頭に戻り、再び i <= 5 をチェック
i = 6 になると 条件が False になりループ終了し、合計を表示
ステップごとの動き
ループ回数 | i の値 (開始時) | total += i の計算 | total の値 (更新後) | i += 1 の後の i の値 | i <= 5 の判定 |
---|---|---|---|---|---|
1回目 | 1 | 0 + 1 = 1 | 1 | 2 | True |
2回目 | 2 | 1 + 2 = 3 | 3 | 3 | True |
3回目 | 3 | 3 + 3 = 6 | 6 | 4 | True |
4回目 | 4 | 6 + 4 = 10 | 10 | 5 | True |
5回目 | 5 | 10 + 5 = 15 | 15 | 6 | False |
終了 | 6 (範囲外) | – | – | – | ループ終了 |

break、continueの基本的な使い方
ループをより柔軟に扱える制御文に、「break」と「continue」があります。
① break(ループを途中で抜ける)
「break」を使うと、ループの途中で強制的に終了できます。
要件:「3になった場合にループを終了」
コード(Python)
for i in range(1, 6):
if i == 3:
break # 3になったらループを終了
print(i)
出力結果
1
2
処理の流れ(if)
- i = 1 のとき print(1)
- i = 2 のとき print(2)
- i = 3 のとき break が実行され、ループ終了
continue(特定の回だけスキップする)
「continue」を使うと、その回の処理をスキップし、次のループに進みます。
要件:「3 のときだけスキップ」
コード(Python)
for i in range(1, 6):
if i == 3:
continue # 3のときだけ処理をスキップ
print(i)
出力結果
1
2
4
5
処理の流れ(if)
- i = 1 のとき print(1)
- i = 2 のとき print(2)
- i = 3 のとき continue が実行され、print(i) をスキップ
- i = 4 のとき print(4)
- i = 5 のとき print(5)
無限ループの回避
ループは、条件を満たす間ずっと繰り返されます。
しかし、終了条件を適切に設定しないと、処理が永遠に続く「無限ループ」になってしまいます。
無限ループとは、「ループの終了条件が満たされず、永遠に繰り返される状態」のことです。
プログラムが止まらなくなり、フリーズの原因になります。
無限ループの例(※実行すると止まらないので注意)
コード(Python)
i = 1
while i <= 5:
print(i) # `i` を増やしていないため、条件が永遠に True
出力結果(理論上、永遠に続く)
1
1
1
1
1
...
(以下無限)
iの値が変わらないため、i <= 5 が ずっと「True」になり、ループが終わりません。
無限ループを止める方法
- ターミナル・コマンドプロンプトの場合 → Ctrl + C を押す
- Jupyter Notebook の場合 → 「停止ボタン(■)」を押す
- エディタ(VS Code など)の場合 → 実行中のプログラムを手動で停止
注意
通常はこれで止まりますが、環境やプログラムの状態によっては効かないこともあります。
その場合は、エディタの再起動やPCの負荷状態を確認するなど、状況に応じた対処が必要です。
無限ループを回避する方法は、「ループ内で変数を更新すること」
コード(Python)
i = 1
while i <= 5:
print(i)
i += 1 # `i` を増やすことで条件を満たさなくなる
出力結果
1
2
3
4
5
「i += 1 」により、i = 6 になった時点で while 条件が False になりループ終了
「どこでループが終わるのか?」を常に意識しながら、適切にループを設計していきましょう。
最後に
ここまでブログを読んでいただき、ありがとうございました。
ループを使うことで、同じ処理を繰り返す手間を省き、効率的なプログラムが書けます。
実際にコードを書きながら、ループの使い方を身につけていきましょう!