AI資格ドリル
資格を選ぶ↓

用語比較

for文とwhile文の使い分け

for 文と while 文は、どちらも処理を繰り返す文です。違いは、繰り返しが終わる条件にあります。for 文は、シーケンスなどの要素を順に取り出し、取り出す要素が尽きたら終わります。while 文は、式が真である間は繰り返し、偽になったら終わります。

Python3基礎試験では、設問のコードから要素を順に処理しているなら for、条件を検査し続けているなら whileと読み分けます。else 節や break、continue の動きは、どちらの文に付いているかで説明が変わるため、取り違えやすい分野です。

このページでは、終わり方、数の列の作り方、else 節と break の動きという三つの軸で比較します。章別の問題は第4章で確認できます。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。

公式一次資料と照合した内容
for文がシーケンスなどの要素を順に処理しイテレータが尽きたら終わること、while文が式が真である間繰り返し最初の検査で偽にもなりうること、range()の終点が生成される列に含まれないこと、breakでelse節が実行されないこと、continueの動きは、Python公式の言語リファレンスとチュートリアルへ2026-10-12に照合しています。
編集部が学習用に整理した内容
試験での判定手順と使い分けの目安は編集部の学習上の整理です。

資格ごとの公式資料の一覧

結論

公式一次資料と照合:用語の定義は公式一次資料と照合しています。

for 文

シーケンス(文字列・タプル・リスト)などの反復可能オブジェクトの要素を、並びの順に1つずつ処理する文。要素を取り出し尽くしたときにループが終わる。

while 文

式が真である限り、本体を繰り返し実行する文。繰り返しのたびに式を検査し、偽になったときにループが終わる。

違いを表で確認

比較軸for 文while 文
繰り返しが終わるとき取り出す要素が尽きたとき式が偽になったとき(最初の検査で偽でもよい)
繰り返しの材料シーケンスなどの反復可能オブジェクト真偽を判断できる式
数の列を回すときrange() が等差数列を作り、終点は含まれない変数を自分で更新し、式で終わりを決める
else 節が実行されるときイテレータが尽きたとき(break なし)式が偽になったとき(break なし)
continue の動き次の要素の反復へ進む本体の残りを飛ばして、式の検査へ戻る
選択肢で探すキーワードin、range()、要素、シーケンス条件式、真偽、更新、比較演算子

公式一次資料と照合:Python3エンジニア認定基礎試験: 2026-09-18に一次資料で確認一次資料の一覧を見る →

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

どちらも回数で決まると思っている人

公式チュートリアルは、Pythonの for 文が回数や刻みを自分で決める書き方ではなく、シーケンスの要素を並びの順に反復する文だと述べます。回数が見えない繰り返しは、条件で終わりを決める while 文の役割です。

02

while 文の本体が必ず1回は動くと思っている人

公式言語リファレンスは、while 文が式を検査し、偽ならその時点でループを終えると述べ、最初の検査で偽になる場合もあるとしています。本体は1回も実行されないことがあります。

03

else 節が break のときにも動くと思っている人

公式チュートリアルは、for 文と while 文のどちらでも、break で終わったときは else 節が実行されないと述べます。return や例外で途中終了した場合も同じです。

具体例で使い分ける

編集部の整理

例 1

『リストの各要素の長さを順に出力する』コードが出た場合

words = ['cat', 'window', 'defenestrate'] の各要素について print(w, len(w)) を実行しています。

  • 公式チュートリアルの例では、for w in words: で要素を並びの順に1つずつ取り出します。
  • 終わりを決めているのは条件式ではなく、要素が尽きることです。
  • 出力は cat 3、window 6、defenestrate 12 の3行になります。

結論: 要素を順に取り出す処理は、for 文と判断します。

例 2

『a < 10 の間、値を出力し a, b = b, a + b を繰り返す』コードが出た場合

a が10より小さい間、print(a) を実行して a と b を更新しています。

  • 公式チュートリアルは、このような while 文が、条件が真である間ループを実行すると述べます。
  • 繰り返しのたびに a < 10 を検査し、偽になった時点で終わります。
  • 本体の中で a を更新しているため、更新がなければ条件は変わりません。

結論: 条件を検査し続ける繰り返しは、while 文と判断します。

例 3

『break を実行せずにループが終わったときだけ実行する処理』を問われた場合

ループの後に、探したものが見つからなかったときの処理を置きたい場面です。

  • 公式チュートリアルは、break を実行せずにループが終了したとき else 節が実行されると述べます。
  • for 文では最後の要素の処理が終わったあと、while 文では条件が偽になったあとに実行されます。
  • break、return、例外で途中終了した場合は、else 節は実行されません。

結論: break なしで終わったときの処理は、ループの else 節に書くと答えます。

問題文から答えを選ぶ手順

編集部の整理:試験での判定手順と使い分けの目安は編集部の学習上の整理です。

  1. 1

    繰り返しの材料を探す

    in の後ろにシーケンスや range() があれば for 文、真偽を判断する式があれば while 文です。

  2. 2

    終わる条件を確認する

    要素が尽きたら終わるのが for 文、式が偽になったら終わるのが while 文です。

  3. 3

    途中終了の文を確認する

    break があればループを抜けて else 節は実行されません。continue があれば、for 文は次の要素へ、while 文は式の検査へ進みます。

  4. 4

    数の列の語を確認する

    range() の終点は生成される列に含まれません。range(10) は10個の値を生成します。

試験での見分け方

編集部の整理

  • 1for 文は、シーケンスなどの反復可能オブジェクトの要素を並びの順に処理し、イテレータが尽きたら終わる。
  • 2while 文は、式が真である限り繰り返し、偽になったら終わる。最初の検査で偽になることもある。
  • 3range() は等差数列を生成し、指定した終点は生成される列に含まれない。
  • 4break は最も内側のループを抜け、ループの else 節は実行されない。
  • 5continue は、for 文なら次の反復へ、while 文なら本体の残りを飛ばして式の検査へ進む。
  • 6反復中の同じコレクションを変更するコードは書きにくいので、コピーを反復するか新しいコレクションを作る。

誤答しやすい選択肢

for 文は、自分で回数や刻みを決める書き方だと考える

修正: Pythonの for 文は、シーケンスの要素を並びの順に反復する文です。数の列が必要なときは range() を使います。

range(10) の列に10が含まれると考える

修正: 指定した終点は生成される列に含まれません。range(10) が生成するのは10個の値です。

while 文の本体は必ず1回は実行されると考える

修正: 最初の検査で式が偽なら、本体は1回も実行されず、else 節があればそれが実行されます。

break のときにもループの else 節が実行されると考える

修正: break で終わったときは、for 文でも while 文でも else 節は実行されません。

確認問題

Q1Pythonの for 文は、何を順に処理しますか?

答え: シーケンスなどの反復可能オブジェクトの要素

公式チュートリアルは、for 文が任意のシーケンス(リストや文字列)の要素を並びの順に反復すると述べています。

Q2range(10) が生成する値の個数は何個ですか?

答え: 10個

指定した終点は生成される列に含まれません。range(10) は10個の値を生成します。

Q3while 文のループの else 節が実行されるのは、どのときですか?

答え: break を実行せず、条件が偽となってループが終わったとき

公式チュートリアルは、while 文の場合、ループ条件が偽となったあとに else 節が実行されると述べています。break で終わったときは実行されません。

到達チェック

  • for 文が要素を順に処理し、要素が尽きたら終わることを言える
  • while 文が式の真偽で繰り返し、偽で終わることを言える
  • range() の終点が列に含まれないことを説明できる
  • ループの else 節が実行されない場合(break・return・例外)を挙げられる
  • continue の動きが for 文と while 文でどう違うか説明できる

同じ資格で次に知りたいこと

よくある質問

Qfor 文と while 文の最大の違いは何ですか?

A

繰り返しの終わり方です。for 文は要素を取り出し尽くしたら終わり、while 文は式が偽になったら終わります。

Qwhile 文の本体が1回も実行されないことはありますか?

A

あります。最初の検査で式が偽なら、本体を実行せずにループが終わります。

Qrange(5) は何を生成しますか?

A

0から4までの5個の値を生成します。指定した終点の5は含まれません。

Qbreak で終わったとき、ループの else 節は実行されますか?

A

実行されません。for 文でも while 文でも同じです。return や例外で終わったときも実行されません。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)