
はじめに
プログラミングの授業で「繰り返し」が出てきたとき、for文とwhile文の違いがよく分からない、と感じた人は多いのではないでしょうか。
どちらも同じ処理を何度もくり返す書き方なのに、いつどちらを選べばよいのかが見えにくいんですよね。
この記事では、中学技術で学ぶ繰り返しのプログラムを、できるだけやさしい言葉で整理しました。
回数が決まっているときのfor文、条件が続く間くり返すwhile文、そして2つの例題で変数の値を追いかける方法まで、順番に見ていきます。
定期テストで出やすい無限ループや、まちがえやすいポイントも最後に確認します。
プログラムの文字を見ただけで難しそうと感じても、大丈夫です。
やることは「1周ごとに変数の値を書き出す」という、とても地道で確実な作業だけです。
一緒にゆっくり進めていきましょう。
- 繰り返しの考え方:なぜ必要なのかと、順次・分岐・反復の3つの流れ。
- for文とwhile文の違い:回数が決まっているか、条件が続く間か。
- 例題での値の追い方:合計と貯金の2問を、表を使って解く方法。
- 無限ループとミスの防ぎ方:テストでまちがえやすい3つのポイント。
繰り返しの全体像
繰り返しのプログラムは、3つの段階で理解すると整理しやすくなります。
まず「なぜ繰り返しが必要なのか」という考え方、次に「for文とwhile文」という2つの書き方、最後に「例題と無限ループ」で実際の動きを確かめる流れです。
回数が決まっていればfor文、条件が続く間ならwhile文という見分け方が、この記事全体の軸になります。
- 考え方:同じ処理を何度も書かずに、くり返しで短く正確にまとめる。
- 書き方:for文は回数が決まっているとき、while文は条件が成り立つ間。
- 確かめ方:1周ごとに変数の値を表へ書き出し、無限ループに注意する。
ポイント1:繰り返しの考え方と反復構造
最初のポイントは、そもそも繰り返しがなぜ必要なのかという考え方です。
ここが分かると、あとのfor文やwhile文の形も覚えやすくなります。
繰り返しは、同じ処理を短く、正確に、直しやすく書くための工夫です。
繰り返しの考え方のポイントを紹介します
同じ命令を何行も書くと困る理由
たとえば画面に「こんにちは」を10回表示したいとき、同じ命令を10行並べて書くこともできます。
でも、これを100回にしたいとなったらどうでしょう。
行が増えるほど入力の手間がかかり、1行だけ書き写しを間違えるといった失敗も起こりやすくなります。
しかも、回数を変えたくなったときには、並べた行を数え直して足したり消したりしなければなりません。
プログラムが長くなるほど、ミスを探すのも大変になっていくのです。
そこで登場するのが繰り返しです。
「この命令を10回くり返す」と一度だけ書いておけば、プログラムのほうが自動で10回分を行ってくれます。
100回にしたいときも、数字を10から100へ書きかえるだけで済みます。
手間が減るだけでなく、書き間違いも減るのが大きな利点です。
人がやると疲れて間違えてしまう単純作業ほど、コンピュータに任せる価値があるのです。
順次・分岐・反復の3つの基本
プログラムの流れは、基本的に3つの組み立て方でできています。
1つ目は順次で、上に書いた命令から順番に進んでいく流れです。
2つ目は分岐で、「もし雨なら傘を持つ」のように条件によって進む道が分かれる流れです。
そして3つ目が反復で、同じ処理を何度もくり返す流れのことを指します。
テストでは、この3つの名前と、それぞれがどんな流れなのかを結びつける問題がよく出ますので、まず用語を押さえておきましょう。
この3つの組み合わせさえ分かれば、どんなに長いプログラムも、小さな流れの積み重ねとして読み解けるようになります。
反復は、ほかの2つと組み合わせることで力を発揮します。
順次の中に反復を入れたり、反復の中に分岐を入れたりすると、複雑に見える動きも少ない行数で表せるようになります。
前回までに学んだ条件分岐のif文も、実はこの反復の中でよく使われる大切な部品なんですよ。
3つの流れを自由に組み合わせられることが、プログラミングのおもしろさでもあります。
繰り返しで短く正確に直しやすく
繰り返しを使う利点は、大きく3つにまとめられます。
1つ目は、プログラムが短くなることです。
2つ目は、同じ命令を何度も書かないので、書き間違いが減って正確になることです。
3つ目は、回数を変えたいときに数字を1か所直すだけで済み、直しやすいことです。
どれも、人が手作業でくり返すよりコンピュータに任せたほうがずっと得意な部分で、プログラミングが役に立つ場面そのものと言えるでしょう。
たとえば毎日の記録を何百件も処理するような場面では、繰り返しがなければプログラムは現実的な長さになりません。
実際の生活にも、繰り返しは身近にあります。
毎朝同じ順番で歯をみがく、10回腕立て伏せをする、信号が青になるまで待つ、といった行動は、どれも繰り返しの考え方で説明できます。
身の回りの例と結びつけておくと、用語の意味を忘れにくくなりますよ。
下のカードで、3つの利点をもう一度確認しておきましょう。
- 短くなる:同じ命令を何行も並べずに、1回書くだけで済みます。
- 正確になる:書き写しの回数が減るので、書き間違いも減ります。
- 直しやすい:回数を変えるときは、数字を1か所直すだけです。
ポイント2:for文とwhile文の違いと使い分け
2つ目のポイントは、繰り返しの書き方であるfor文とwhile文の違いです。
どちらも同じ処理をくり返しますが、終わる合図が「回数」なのか「条件」なのかで使い分けます。
for文とwhile文の違いのポイントを紹介します
for文は回数が決まっているときに使う
for文は、くり返す回数があらかじめ分かっているときに使う書き方です。
「この処理を5回くり返す」「1から10までの数について順に調べる」というように、回数や範囲をはっきり言い切れるなら、for文がぴったりです。
for文の中では、回数を数えるための変数を用意します。
この変数のことをカウンタ変数と呼び、よくiという名前が使われます。
iが1から5まで変わる間、中の処理が1周ずつ実行されるというイメージです。
for文の動きを順に見てみましょう。
「iを1から3まで変えながら、やあと表示する」というfor文では、1周目はiが1で表示、2周目はiが2で表示、3周目はiが3で表示します。
次にiが4になると、範囲の3を超えるので繰り返しが終わります。
つまり表示される回数は3回です。
こうして1周ごとに変数の値を書き出していく習慣が、テストで役に立ちます。
while文は条件が続く間くり返す
while文は、条件が成り立っている間だけくり返す書き方です。
くり返す回数があらかじめ決まっていなくても使えるところが、for文との大きな違いになります。
流れは、まず条件を調べ、真ならば中の処理を行い、また条件に戻って調べる、というものです。
条件が偽になったところで繰り返しは終わり、次の命令へ進みます。
処理の前に毎回条件を確かめるのが、while文の特徴と覚えておきましょう。
イメージとしては、「ごはんがなくなるまで食べ続ける」ように、終わる合図が回数ではなく状態にある繰り返しです。
たとえば「貯金が1000円未満の間、貯金に200円を足す」というwhile文を考えます。
貯金が0円のときは条件が真なので足し、200円になってもまだ真なのでまた足し、1000円になって初めて偽になって終わります。
何回で終わるかは、書いた時点では分からなくても、条件さえ決まっていればプログラムは動きます。
この柔軟さがwhile文の強みです。
forとwhileの使い分けとカウンタ変数
では、for文とwhile文はどう使い分ければよいのでしょうか。
目安はとても簡単で、回数がはっきり分かっているならfor文、終わる条件がはっきり分かっているならwhile文を選びます。
「5回くり返す」はfor文、「貯金が目標に届くまで」はwhile文という具合です。
実際には、どちらの書き方でも同じ動きを作れる場面もありますが、問題文の言い方に合わせて選ぶと、読む人にも伝わりやすいプログラムになります。
どちらの文でも、変数の使い方がカギになります。
for文ではカウンタ変数が自動で1ずつ増えていきますが、while文では条件に使う変数を自分で処理の中に書いて変化させなければなりません。
この違いを忘れると、次に学ぶ無限ループの原因になります。
2つの文の特徴を、下のカードで見比べておきましょう。
- for文:回数や範囲が決まっている。カウンタ変数が自動で増える。
- while文:条件が真の間くり返す。条件に使う変数は自分で変化させる。
- 共通点:1周ごとに変数の値を書き出すと、動きを正しく追える。
ポイント3:例題で値の追い方と無限ループを身につける
3つ目のポイントは、例題を使った変数の値の追い方です。
定期テストでは、プログラムを読んで「最後の値はいくつか」「何回くり返されるか」を答える問題がよく出ます。
1周ごとに値を表へ書き出すことができれば、落ち着いて解けます。
値の追い方と無限ループのポイントを紹介します
例題1 for文で1から5までの合計
ここからは例題で、変数の値を追う練習をしましょう。
例題1は、合計を0にしておき、iを1から5まで変えながら「合計=合計+i」を計算する、というfor文のプログラムです。
くり返しが終わったとき、合計はいくつになるでしょうか。
こうした問題では、頭の中だけで計算せず、繰り返しの1周ごとに変数の値を紙に書き出していくのが確実な方法です。
とくに繰り返しの回数が多いほど、暗算でごまかそうとして途中で値を取り違えやすくなります。
紙に1周ずつ書く手間をかけた人ほど、結果的に早く正確に解けるものです。
表にして追いかけます。
1周目はiが1で合計が0+1の1、2周目はiが2で合計が1+2の3、3周目はiが3で合計が3+3の6になります。
4周目はiが4で合計が10、5周目はiが5で合計が15です。
よって答えは15となり、1+2+3+4+5を計算した結果と一致します。
前の周の合計に足していくという流れをつかめば、周の数が増えても慌てずに解けますよ。
例題2 while文で貯金が1000円になるまで
例題2はwhile文です。
貯金を0円にして、貯金が1000円未満の間、貯金に200円を足す、というプログラムが終わるまでに、繰り返しは何回行われるでしょうか。
while文の問題では、周ごとに「条件を調べる、真なら処理をする」の順に値を書き出すのがコツです。
先に処理をしてから条件を調べるのではなく、必ず条件が先であるという点に注意して追いかけてみましょう。
ここで間違えやすいのは、1回目の処理をする前に、すでに一度条件を調べているという点です。
最初の貯金は0円ですから、条件は真で、そこから処理が始まります。
追いかけてみると、1回目で200円、2回目で400円、3回目で600円、4回目で800円、5回目で1000円になります。
1000円になった時点で「1000円未満」という条件が偽になるので、そこで終わりです。
答えは5回となります。
もし条件が「1000円以下」だったら、1000円のときも真なので、もう1回足して6回になります。
未満と以下の違いも、テストで狙われやすいポイントです。
無限ループとまちがえやすい3つのポイント
繰り返しで一番気をつけたい失敗が、無限ループです。
条件がいつまでも偽にならず、プログラムが終わらなくなってしまう状態のことをいいます。
主な原因は、while文の中で条件に使う変数を変化させていないことです。
例題2で貯金に200円を足す命令を書き忘れると、貯金はいつまでも0円のままで、条件は永遠に真のままになります。
コンピュータはずっと同じ処理を続けてしまうのです。
実際のプログラム開発でも、無限ループは初心者がもっともよくやってしまう失敗の1つです。
原因を知っていれば、慌てずに直せます。
テストでまちがえやすい点は3つにしぼれます。
1つ目は回数が1つずれることで、「1から5まで」は5回、「0から5まで」は6回になります。
2つ目はカウンタの最初の値を見落とすこと、3つ目は条件に使う変数の更新を忘れることです。
どれも、1周ごとの値を表に書き出せば、防げるまちがいばかりです。
下のカードで、見直しの観点を確認しておきましょう。
- 回数が1つずれる:「1から5まで」は5回、「0から5まで」は6回。
- 最初の値を見落とす:合計や貯金の初期値から追い始める。
- 更新を忘れる:while文の条件に使う変数が変わらないと無限ループ。
テスト前の確認リスト
ここまでの内容を、テスト前に確かめられるようにまとめます。
用語の意味を口で説明できるか、例題の値の追い方を紙に書いて再現できるかの2つの視点で、チェックしてみてください。
1つでも自信のない項目があれば、その項目に対応するポイントの解説を読み返しましょう。
特に計算問題は、読んで分かった気になっても、自分で表を書くとつまずくことが多いものです。
鉛筆を持って、実際に手を動かしながら確認するのがおすすめです。
- 順次・分岐・反復の3つの流れの名前と意味を説明できる。
- for文は回数が決まっているとき、while文は条件が続く間と区別できる。
- カウンタ変数iが1周ごとに増えていく様子を、表に書ける。
- while文は処理の前に条件を調べること、未満と以下の違いを覚えている。
- 無限ループの原因が、条件に使う変数の更新忘れだと説明できる。
よくある質問
for文とwhile文はどちらを使えばよいですか
結論から言うと、回数が決まっているならfor文、条件が続く間ならwhile文です。
問題文に「5回」「1から10まで」といった回数や範囲が書かれていればfor文、「〜になるまで」「〜の間」といった条件が書かれていればwhile文だと考えると、見分けやすくなります。
どちらでも書ける問題もありますが、テストでは問題文の言い回しに合わせた形で答えれば、まず困ることはありません。
迷ったときは、終わる合図が回数なのか条件なのかを考えてみてください。
プログラムが止まらなくなったらどうすればよいですか
結論は、まず落ち着いて実行を止め、条件に使う変数が変わっているかを確かめることです。
止まらないこと自体は、パソコンが壊れたわけではないので安心してください。
多くの場合は、while文の中で条件に使う変数を変化させる命令が抜けています。
授業で使うプログラミング環境には、実行を止めるボタンがありますので、慌てて電源を切ったりせず、そのボタンを押しましょう。
止めたあと、条件の式と、中の処理で変数がどう変わるかを1周分だけ紙に書き出すと、どこが原因なのか見えてきます。
値を追う問題を間違えないコツはありますか
結論は、頭の中で計算せず、必ず表を書くことです。
式だけを眺めずに、数字を書いて確かめましょう。
「いつ終わるのか」を先に決めておくと、迷いにくくなります。
表の左に周の回数、右に変数の名前を並べ、1周ごとに値を書き込んでいきます。
for文なら、カウンタ変数が最後に何になったときに終わるかを先に確かめておき、while文なら、毎回の最初に条件を調べて真か偽かも書き込みましょう。
最後の周で何が起きたかまで書けば、回数のずれも防げます。
練習問題でこの習慣をつけておくと、本番でも落ち着いて解けますよ。
おわりに
今回は、繰り返しのプログラムについて、考え方からfor文、while文、例題、無限ループまでを整理しました。
回数が決まっているときはfor文、条件が続く間くり返すときはwhile文でしたね。
値を追うときは、1周ごとに表へ書き出すだけで、ミスはぐっと減ります。
繰り返しは、これから学ぶ関数やデバッグの土台にもなる大切な考え方です。
まずは今日の2つの例題を、何も見ずにもう一度、表に書いて解いてみてください。
手が動くようになれば、テストでも自信を持って答えられるはずです。
ご視聴ありがとうございました。
この記事の内容を動画でも解説しています。
ぜひご覧ください。








