繰り返し処理とは?プログラミング初心者向けにfor文・while文をわかりやすく解説

アルゴリズム

はじめに

プログラミングを勉強すると、「条件分岐」と並んで必ず登場するのが「繰り返し処理」です。

「繰り返し処理って何?」
「for文とwhile文はどう違うの?」
「何のために使うの?」

このように感じる初心者も多いのではないでしょうか。

繰り返し処理とは、簡単にいうと、

同じ処理を何度も実行するための仕組み

です。

例えば、

「1から10までの数字を順番に表示する」

という処理を考えてみましょう。

同じような命令を10回書くこともできますが、繰り返し処理を使えば、短いプログラムで簡単に実行できます。

この記事では、プログラミング初心者や高校生向けに、繰り返し処理の基本をPythonのサンプルコードを使ってわかりやすく解説します。

繰り返し処理とは

繰り返し処理とは、同じ処理や似た処理を何度も実行する仕組みです。

英語では「loop」と呼ばれることもあります。

例えば、次のような処理を考えてみましょう。

こんにちは
こんにちは
こんにちは
こんにちは
こんにちは

これをプログラムで表示する場合、

print("こんにちは")
print("こんにちは")
print("こんにちは")
print("こんにちは")
print("こんにちは")

と書くこともできます。

しかし、同じ処理を何度も書くのは大変です。

そこで繰り返し処理を使います。

for i in range(5):
    print("こんにちは")

これだけで、

こんにちは
こんにちは
こんにちは
こんにちは
こんにちは

と5回表示できます。

このように、同じ処理をまとめて実行できるのが繰り返し処理です。

なぜ繰り返し処理が必要なのか

プログラムでは、同じ処理を何度も実行する場面が非常に多くあります。

例えば、

  • 1から100までの数字を表示する
  • 生徒全員のテスト結果を確認する
  • 商品一覧を画面に表示する
  • データを1件ずつ処理する
  • ゲームで敵を複数表示する

といった処理です。

もし繰り返し処理を使わなければ、100回処理するために同じコードを100回書かなければならない場合があります。

繰り返し処理を使えば、コードを短くできるだけでなく、修正や管理もしやすくなります。

Pythonの繰り返し処理にはfor文とwhile文がある

Pythonで繰り返し処理を行う場合、主に次の2つを使います。

  • for文
  • while文

どちらも処理を繰り返すために使いますが、使い方には違いがあります。

基本的には、

回数や対象が決まっている
→ for文

条件が成立している間、繰り返す
→ while文

と覚えると分かりやすいでしょう。

for文とは

for文は、決められた回数だけ処理したり、複数のデータを順番に処理したりするときによく使います。

基本的な書き方は次のとおりです。

for 変数 in データ:
    繰り返す処理

例えば、

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

を実行すると、

0
1
2
3
4

と表示されます。

rangeとは

先ほどのプログラムでは、

range(5)

という部分が出てきました。

rangeは、連続した数字を作るために使います。

range(5)

では、

0
1
2
3
4

という数字が使われます。

5までではなく、0から4までになる点に注意しましょう。

1から5まで表示する方法

1から5まで表示したい場合は、

for i in range(1, 6):
    print(i)

と書きます。

実行結果は、

1
2
3
4
5

となります。

rangeの基本的な書き方は、

range(開始, 終了)

です。

ただし、終了の数字そのものは含まれません。

そのため、

range(1, 6)

では、1から5までとなります。

for文の処理の流れ

次のプログラムを考えてみましょう。

for i in range(3):
    print("処理中")

処理の流れは、

1回目
↓
処理中

2回目
↓
処理中

3回目
↓
処理中

となります。

実行結果は、

処理中
処理中
処理中

です。

変数iには何が入っているのか

for文では、

for i in range(5):

の「i」に数字が順番に入ります。

例えば、

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

では、

1回目 → i = 0
2回目 → i = 1
3回目 → i = 2
4回目 → i = 3
5回目 → i = 4

となります。

このように、繰り返すたびに変数の値が変化します。

繰り返し処理で計算してみる

for文は、計算にも利用できます。

例えば、1から5までの合計を求めてみましょう。

total = 0

for i in range(1, 6):
    total = total + i

print(total)

実行結果は、

15

です。

計算は、

0 + 1
↓
1 + 2
↓
3 + 3
↓
6 + 4
↓
10 + 5
↓
15

という流れで進みます。

リストとfor文

for文は、複数のデータを順番に取り出すときにも便利です。

例えば、次のようなリストがあるとします。

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

これをfor文で処理すると、

for fruit in fruits:
    print(fruit)

実行結果は、

りんご
みかん
バナナ

となります。

このように、リストの中身を1件ずつ取り出して処理できます。

実際のシステムでもよく使われる

Webサイトや業務システムでも、繰り返し処理は頻繁に利用されます。

例えば、商品データが、

商品A
商品B
商品C
商品D

と登録されている場合、画面に商品一覧を表示する際には、商品を1件ずつ取り出して表示します。

考え方としては、

for 商品 in 商品一覧:
    商品を表示する

という処理です。

実際のWeb開発では、この考え方を使って一覧画面などを作成します。

while文とは

while文も繰り返し処理の一つです。

whileは、

ある条件が成立している間、処理を繰り返す

場合に使います。

基本的な書き方は、

while 条件:
    繰り返す処理

です。

例えば、

count = 1

while count <= 5:
    print(count)
    count = count + 1

を実行すると、

1
2
3
4
5

と表示されます。

while文の処理の流れ

先ほどのプログラムでは、最初に、

count = 1

としています。

次に、

while count <= 5:

で、

「countが5以下か」

を確認します。

countが5以下である間は、

print(count)
count = count + 1

を繰り返します。

処理の流れは、

count = 1
↓
5以下なので実行
↓
count = 2
↓
5以下なので実行
↓
count = 3
↓
5以下なので実行
↓
count = 4
↓
5以下なので実行
↓
count = 5
↓
5以下なので実行
↓
count = 6
↓
条件が成立しない
↓
終了

となります。

for文とwhile文の違い

for文とwhile文は、どちらも繰り返し処理に使います。

違いを簡単に整理すると、次のようになります。

種類向いている処理
for文回数が決まっている処理
for文複数のデータを順番に処理
while文条件が成立している間繰り返す
while文何回繰り返すか分からない処理

例えば、

10回繰り返す

ならfor文が向いています。

一方、

正しいパスワードが入力されるまで繰り返す

のような処理ならwhile文が向いています。

無限ループに注意

while文では、「無限ループ」に注意する必要があります。

例えば、

count = 1

while count <= 5:
    print(count)

というプログラムには問題があります。

countの値がずっと1のままなので、

1
1
1
1
1
...

と処理が終わらなくなります。

これを防ぐには、

count = count + 1

を追加します。

count = 1

while count <= 5:
    print(count)
    count = count + 1

while文では、

条件がいつか成立しなくなるか

を確認することが重要です。

breakとは

繰り返し処理を途中で終了したい場合には「break」を使います。

例えば、

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

    print(i)

実行結果は、

0
1
2
3
4

です。

iが5になったとき、

break

が実行されるため、その時点で繰り返し処理が終了します。

continueとは

現在の繰り返しだけを飛ばして、次の処理へ進みたい場合には「continue」を使います。

例えば、

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

    print(i)

実行結果は、

0
1
3
4

となります。

iが2の場合だけ、

print(i)

が実行されません。

条件分岐と繰り返し処理を組み合わせる

実際のプログラムでは、繰り返し処理だけを単独で使うのではなく、条件分岐と組み合わせることがよくあります。

例えば、

for i in range(1, 11):
    if i % 2 == 0:
        print(i)

このプログラムでは、1から10までの数字を順番に確認します。

そして、

i % 2 == 0

という条件で、2で割り切れるかを確認しています。

実行結果は、

2
4
6
8
10

となります。

つまり、偶数だけを表示しています。

このように、

繰り返し処理
+
条件分岐

を組み合わせることで、より複雑なプログラムを作れるようになります。

九九を表示してみる

繰り返し処理を使えば、九九も簡単に作れます。

まずは2の段を表示してみましょう。

for i in range(1, 10):
    print(2 * i)

実行結果は、

2
4
6
8
10
12
14
16
18

となります。

さらに、

for i in range(1, 10):
    print("2 ×", i, "=", 2 * i)

とすると、

2 × 1 = 2
2 × 2 = 4
2 × 3 = 6
2 × 4 = 8
...

のように表示できます。

繰り返し処理を入れ子にする

for文の中にfor文を書くこともできます。

これを「ネスト」や「入れ子」と呼びます。

例えば、

for i in range(1, 4):
    for j in range(1, 4):
        print(i, j)

実行すると、

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

となります。

外側のfor文が1回実行されるたびに、内側のfor文が3回実行されます。

繰り返し処理はゲームでも使われる

ゲームでも繰り返し処理は重要です。

例えば、

敵を5体表示する

という場合、

for i in range(5):
    print("敵を表示")

のように考えられます。

ほかにも、

  • アイテムを複数表示する
  • 敵を順番に動かす
  • キャラクターの状態を更新する
  • 得点データを確認する

など、さまざまな場面で繰り返し処理が利用されます。

繰り返し処理はデータ分析でも使われる

情報Iではデータの活用も学びます。

複数のデータを処理するときにも繰り返し処理は重要です。

例えば、

scores = [70, 85, 60, 90, 75]

for score in scores:
    print(score)

とすると、生徒の点数を順番に表示できます。

さらに、

total = 0

for score in scores:
    total = total + score

print(total)

とすれば、合計点を求めることもできます。

よくある間違い1 インデント

Pythonではインデントが非常に重要です。

例えば、

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

のように、繰り返す処理は字下げして書きます。

インデントを正しく書かないと、エラーになったり、意図しない処理になったりする場合があります。

よくある間違い2 rangeの終了値

初心者が間違えやすいのがrangeです。

例えば、

range(1, 10)

では、

1
2
3
4
5
6
7
8
9

までです。

10は含まれません。

1から10まで処理したい場合は、

range(1, 11)

と書きます。

よくある間違い3 無限ループ

while文では、条件がいつまでも成立すると処理が終了しません。

例えば、

number = 1

while number < 10:
    print(number)

では、numberの値が変化しないため、無限ループになります。

必ず、

number = number + 1

などの処理を入れて、条件が変化するようにしましょう。

繰り返し処理を理解するコツ

繰り返し処理を理解するためには、コードを読むだけではなく、実際に数値を変更して動かしてみるのがおすすめです。

例えば、

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

を、

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

に変更してみます。

さらに、

for i in range(1, 6):
    print(i)

や、

for i in range(1, 11, 2):
    print(i)

など、少しずつ変更して実行結果を確認してみましょう。

自分で数字を変えて試すことで、繰り返し処理の仕組みが理解しやすくなります。

練習問題

最後に簡単な練習問題を考えてみましょう。

1から10までの数字を表示するプログラムを作ってください。

解答例

for i in range(1, 11):
    print(i)

次に、1から10までの中から偶数だけを表示してみましょう。

解答例

for i in range(1, 11):
    if i % 2 == 0:
        print(i)

実行結果は、

2
4
6
8
10

となります。

条件分岐と繰り返し処理を組み合わせることで、プログラムでできることが一気に増えていきます。

まとめ

繰り返し処理とは、

同じ処理や似た処理を何度も実行する仕組み

です。

Pythonでは主に、

for
while

を使います。

for文は、

回数が決まっている処理
複数のデータを順番に処理

する場合に向いています。

while文は、

ある条件が成立している間、処理を続ける

場合に向いています。

さらに、

break
continue

などを使うことで、繰り返し処理を途中で終了したり、一部の処理を飛ばしたりすることもできます。

プログラミングでは、

条件分岐と繰り返し処理

は特に重要な基礎です。

この2つを組み合わせることで、ゲーム、Webサイト、データ処理など、より実用的なプログラムを作れるようになります。

次は、複数のデータをまとめて扱うための「配列・リスト」について学ぶと、プログラミングの理解をさらに深めることができます。