ループとは?for文・while文の基本を初心者向けにPythonで解説

loop1 プログラミング学習
アフィリエイト広告を利用しています

こんにちは!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

処理の流れ(ステップごとの動き)

  1. 「range(1, 6)」 が 1 から 5 までの数字を順番に作る(6は含まれない)
            
  2. for 文」が range(1, 6) から 1つずつ値を取り出して i に代入する
             
  3. print(i) が実行され、i の値が表示される
            
  4. ループの先頭に戻る(次の i を取得)

    i = 6 になると range(1, 6) の範囲外なのでループ終了

     

② while 文

while 文は、「条件を満たしている間だけ処理を繰り返す」 仕組みです。

for 文と違い、繰り返す回数が決まっていない場合に使われます。

基本形(Python)

while 条件:
実行する処理

仕組み

  1. 条件が True かチェックする
        
  2. True なら ループの中の処理を実行する
          
  3. 再び条件をチェック し、True ならループを続ける
         
  4. 条件が False になるとループ終了

さらに、コード例を用いて詳しく解説します。

要件:「1から5までの数字を表示したい」

コード(Python)

i = 1

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

出力結果

1
2
3
4
5

処理の流れ(ステップごとの動き)

  1. i = 1 でスタート
          
  2. 条件 i <= 5 をチェック(True のためループ開始)
         
  3. print(i) を実行し、i の値を表示
         
  4. i += 1 で i を 1 増やす
         
  5. ループの先頭に戻り、再び 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)

出力結果

買うもの: りんご
買うもの: バナナ
買うもの: オレンジ

処理の流れ

  1. shopping_list から1つずつ 「item」 に値を代入する
  2. print() で 「item」の値を表示
  3. ループの先頭に戻る(次の値を取得)

    すべてのリスト要素を処理したらループ終了

    

1から5までの合計を求める(while文)

コード(Python)

i = 1
total = 0

while i <= 5:
total += i
i += 1

print("合計:", total)

出力結果

合計: 15

処理の流れ

  1. i = 1 でスタート、total = 0(初期値を設定)
           
  2. 条件 i <= 5 をチェック(True のためループ開始)
              
  3. total += i を実行し、i の値を total に足す
    ※「+=」は、「現在の値に新しい値を足して更新する記号」です。 
            
  4. i += 1 で i を 1 増やす
                
  5. ループの先頭に戻り、再び i <= 5 をチェック

    i = 6 になると 条件が False になりループ終了し、合計を表示

ステップごとの動き

ループ回数i の値
(開始時)
total += i の計算total の値 (更新後)i += 1 の後の i の値i <= 5 の判定
1回目10 + 1 = 112True
2回目21 + 2 = 333True
3回目33 + 3 = 664True
4回目46 + 4 = 10105True
5回目510 + 5 = 15156False
終了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)

  1.  i = 1 のとき print(1)
  2.  i = 2 のとき print(2)
  3.  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)

  1.  i = 1 のとき print(1)
           
  2.  i = 2 のとき print(2)
          
  3.  i = 3 のとき continue が実行され、print(i) をスキップ
           
  4.  i = 4 のとき print(4)
          
  5.  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 になりループ終了
         

          
「どこでループが終わるのか?」を常に意識しながら、適切にループを設計していきましょう。

      

最後に

ここまでブログを読んでいただき、ありがとうございました。

ループを使うことで、同じ処理を繰り返す手間を省き、効率的なプログラムが書けます。

実際にコードを書きながら、ループの使い方を身につけていきましょう!