よろずやIT
プログラミング

ループ(繰り返し)とは?for文とwhile文の違いをPythonで図解

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

プログラミングのイラスト

結論: ループ(繰り返し)は、同じ処理を、何度も繰り返す仕組みです。回数や対象が決まっているならfor文、条件が成り立つ間、続けたいならwhile文を使います。注意点は、終わらなくなる「無限ループ」。止まらない時は、多くの環境で Ctrl + C で止められます。

ループとは

同じ作業を、何度も手で書くのは、大変で、ミスのもとです。たとえば、「こんにちは」を3回表示するなら、3行書けば済みます。でも、1,000回なら、どうでしょうか。

ループを使うと、「この処理を、○回繰り返す」「この条件が成り立つ間、繰り返す」と、短く書けます。

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

for文は回数が決まっている時、while文は条件が成り立つ間に使うことを、Pythonのコード例と結果で比べた図解

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

結果は、「こんにちは」が3回、表示されます。

リストの全部の要素を、順に処理する

fruits = ["りんご", "みかん", "ぶどう"]
for fruit in fruits:
    print(fruit)

リストの要素を、1つずつ取り出して、処理します。**「全部に対して、同じことをする」**時の、基本の形です。変数の基本は、変数とはをご覧ください。

while文:条件が成り立つ間、続ける時

n = 3
while n > 0:
    print(n)
    n = n - 1

結果は、3、2、1 と表示されます。

  1. n > 0 という条件を確認する
  2. 成り立つ(はい)なら、処理をする
  3. n を1減らして、もう一度、条件を確認する
  4. 成り立たなく(いいえ)なったら、終わる

使い分けの目安

こんな時 使うもの 例
回数が決まっている for 10回繰り返す
リストなどの全部を処理する for 全員の名前を表示する
何回で終わるか分からない while 入力が正しくなるまで、聞き直す
条件が成り立つ間、続ける while 残りが0になるまで、減らす

迷ったら、終わりが決まっているfor文を選ぶのが安全です。

無限ループ:終わらなくなる

while文の処理の流れと、変数を変化させないと終わらない無限ループを示した図解

while文では、条件が、いつか成り立たなくなるようにしておく必要があります。

n = 3
while n > 0:
    print(n)

この例では、n が減らないため、n > 0 がずっと成り立ち、3を表示し続けます。これが、無限ループです。

止め方と、防ぎ方

実際のシステムでも、無限に繰り返す処理は、障害の原因になります。たとえば、外部のサービスにつながらない時に、何度も再試行する処理は、APIの再試行の決め方や、APIの呼び出しループへの対策で解説しています。

break と continue

命令 動き 使い方の例
break ループを、そこで終わらせる 探していた値が見つかったら、抜ける
continue その回の残りを飛ばして、次の回へ 空のデータは、処理せずに飛ばす
for n in [3, 8, 5, 12]:
    if n > 10:
        print("見つかりました:", n)
        break

10より大きい数が見つかった時点で、ループを終わらせます。この例では、12が見つかったところで終わります。条件の書き方は、IF関数の使い方の考え方と同じです。

JavaScriptでは

考え方は、同じです。書き方だけが違います。

for (let i = 0; i < 3; i++) {
  console.log("こんにちは");
}

よくあるつまずき

症状 原因 対処
終わらない while文の条件が、変わらない 変数を、ループの中で変化させる
回数が1つ少ない・多い range(3)の終わりは、含まれない 0始まりと、終わりの扱いを確認する
処理が繰り返されない 字下げが、足りない 繰り返したい行を、字下げする
結果が想定と違う 途中で、値を書き換えている printで、途中の値を確認する(デバッグとは)

まとめ

関連記事:Pythonとは、変数とは、関数とは、アルゴリズムとは、デバッグとは

あわせて読みたい:条件分岐(if文)とは

あわせて読みたい:再帰(再帰関数)とは、辞書(dict)型とは

PRPython イラストで学ぶIT入門 Python初心者と新人SEのための実務につながる基礎学習ガイド【電子書籍】[ 高市 勇気 ]

Python イラストで学ぶIT入門 Python初心者と新人SEのための実務につながる基礎学習ガイド【電子書籍】[ 高市 勇気 ]

¥990

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.for文とwhile文は、どう使い分けますか?

A.回数や、対象が決まっている時は、for文を使います(例:リストの全部の要素を処理する、10回繰り返す)。何回で終わるか分からず、『条件が成り立つ間、続けたい』時は、while文を使います(例:入力が正しくなるまで、繰り返し聞く)。迷ったら、for文のほうが、終わりが決まっていて安全です。

Q.無限ループになってしまいました。どうやって止めますか?

A.ターミナルやコマンドプロンプトで実行している場合は、多くの環境で、Ctrl + C を押すと止められます。エディタや実行環境によっては、停止ボタンを使います。原因は、while文の条件が、ずっと成り立つままになっていることがほとんどです。条件に使う変数が、ループの中で変化しているかを確認します。

Q.range(3)は、0から3までですか?

A.Pythonのrange(3)は、0、1、2の3つの数を作ります。3は含まれません。range(1, 4)なら、1、2、3です。『終わりの数は含まれない』と覚えておくと、迷いません。

Q.breakとcontinueの違いは?

A.breakは、ループそのものを、そこで終わらせます。continueは、その回の残りの処理を飛ばして、次の回へ進みます。たとえば、探していた値が見つかったら、breakで抜けるのが典型的な使い方です。

Q.ループの中で、リストを書き換えても大丈夫ですか?

A.回している最中のリストの要素を、追加・削除すると、思わぬ結果になりやすいので、避けるのが無難です。必要なら、元のリストはそのままにして、新しいリストを作る方法を使います。

関連記事

プログラミング用語解説

スコープ(変数の有効範囲)とは?ローカル変数・グローバル変数をPythonで解説

スコープとは、変数が使える範囲のことです。関数の中のローカル変数と、外のグローバル変数の違い、NameErrorやUnboundLocalErrorの原因と直し方、引数と戻り値で受け渡す書き方を、Pythonの短いコードと図解で解説します。

プログラミング用語解説

関数の引数とは?位置引数・キーワード引数・デフォルト値をPythonで解説

引数とは、関数に渡す値のことです。位置引数・キーワード引数・デフォルト値の違い、引数の数が合わない時のエラー、デフォルト値にリストを使ってはいけない理由を、Pythonの短いコードと図解で解説します。

プログラミング用語解説

PHPとは?何ができる?仕組みとWordPressとの関係を図解で解説

PHPは、Webサイトの裏側(サーバー)で動くプログラミング言語で、WordPressもPHPで動いています。何ができるか、動く仕組み、簡単なコード例、メリット・注意点、始め方を、図解つきで初心者向けに解説します。

PC・スマホ困りごと解決

iPhoneが再起動を繰り返す(リンゴループ)時の直し方

iPhoneが再起動を繰り返す(リンゴループ)時は、強制再起動、充電、アプリの見直しの順に試します。機種別の手順と、混同しやすい初期化との違いを解説します。

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。