C言語のfor文とwhile文の違いを完全解説!初心者でもわかる繰り返し処理
生徒
「C言語で同じ処理を何回もくり返したい時はどうすればいいんですか?」
先生
「C言語では、for文、while文、do-while文という繰り返し構文を使います。」
生徒
「それぞれ何が違うんですか?初心者でもわかりやすい例で知りたいです!」
先生
「では、順番に解説しながら使い方も確認していきましょう。」
1. for文とは?
C言語のfor文は、決まった回数だけ処理を繰り返したいときに使います。例えば「10回ジャンプする」「5回メッセージを表示する」といった、回数が決まっている処理にとても向いている構文です。プログラミング未経験の人でも、数字が減ったり増えたりすると何回目か分かります。for文は、回数を管理する変数、繰り返しの条件、増やす操作を1行にまとめて書けるので、読みやすさという点でも人気があります。
int i;
for(i = 0; i < 5; i++)
{
printf("こんにちは\n");
}
このプログラムは「こんにちは」を5回表示します。数字が変われば回数も自由に変えられます。学校の宿題の提出回数を数える感覚に近いので、初心者でもイメージしやすい書き方です。
2. while文とは?
while文は条件が真の間、ずっと処理を続けます。for文のように回数が決まっていなくても使えます。「雨が降っている間は傘をさす」「電池が切れるまでライトが光る」というように、終わるタイミングが決まっていない処理で便利です。プログラムを書いていると、必ずしも回数が決まっているとは限りません。だからこそwhile文はC言語の中でも大切な繰り返し構文になります。
int num = 3;
while(num > 0)
{
printf("カウント:%d\n", num);
num--;
}
この例は数字が0になるまで表示を続けます。もしnum--を忘れると永遠に続く無限ループになってしまうので注意が必要です。while文は条件を書く位置がはっきりしているので、条件中心の繰り返しを考えたい場合に向いています。
3. do-while文とは?
do-while文は、最低1回だけ処理を実行する繰り返し構文です。while文は最初に条件を確認しますが、do-while文は先に処理を行います。例えば「料理を一口食べてから味を判断する」「ゲームを一回遊んでから続けるか選ぶ」というように、必ず一度は実行する必要がある動きに向いています。初心者のうちは使う場面が少ないですが、知っておくと便利です。
int n = 0;
do
{
printf("数字:%d\n", n);
n++;
}while(n < 3);
条件は後ろに書くため、必ず1回は出力されます。この違いは意外と重要で、入力チェックやメニューの選択で使われることが多い構文です。
4. 回数が決まっているならfor文が便利
もし「10回表示したい」「100回くり返したい」といったはっきりした回数があるならfor文が最適です。変数の初期化、条件、増やす処理が一目でわかるので、プログラムが読みやすくなります。
for(int i = 1; i <= 10; i++)
{
printf("%d回目の処理です\n", i);
}
機械的な繰り返しに向いているため、配列の処理や大量のデータを扱うときによく利用されます。
5. 条件が変化し続けるならwhile文が活躍
while文は何回続くかわからない繰り返しに向いています。例えば「ボタンが押されている間だけ動作するプログラム」「入力が間違っていたら続ける処理」などです。条件の変化を中心に考えるときに、while文はとても役立ちます。
int a = 10;
while(a != 0)
{
printf("処理中:%d\n", a);
a--;
}
条件を優先して繰り返すため、機械の動作やリアルタイム処理の土台にも使われます。
6. 最低一回だけ動かすならdo-while文
do-while文は「まず処理して、そのあとで条件を見る」ので最低一回は必ず実行されます。クイズゲームのように「もう一度遊びますか?」と確認するプログラムの基本パターンでもあります。
int flag;
do
{
printf("ゲーム中\n");
flag = 0;
}while(flag == 1);
この構文を理解しておくと、実際のアプリやゲームに近い処理が書けるようになります。
7. for・while・do-whileの違いを整理
どれも繰り返し文ですが、考え方が違います。for文は「回数」、while文は「条件」、do-while文は「最低1回」が中心になります。初めてC言語を勉強する場合、for文から覚える人が多いです。その次にwhile文を理解し、最後にdo-while文を覚えると混乱が少なくなります。繰り返し処理=ループ処理と呼ばれ、C言語だけでなく他のプログラミング言語でも使います。ここを理解しておくことで、基礎力が一気に上がります。
まとめ
繰り返し処理の基本を振り返ろう
この記事では、C言語における繰り返し処理の基本として、for文、while文、do-while文の違いや使いどころを丁寧に確認してきました。繰り返し処理は、同じ命令を何度も実行するための仕組みであり、プログラムを効率よく書くために欠かせない要素です。もし繰り返し構文がなければ、同じ処理を何行も手作業で書く必要があり、現実的なプログラムは作れません。
for文は「回数が決まっている繰り返し」に強く、変数の初期化、条件、増減が一か所にまとまっているため、読みやすく管理しやすい構文です。初心者が最初に学ぶループ構文として最適で、配列処理や決まった回数の表示、テストデータの確認など、さまざまな場面で使われます。回数を数える感覚がそのままコードに反映されるため、動きをイメージしやすい点も大きな特徴です。
while文とdo-while文の考え方
while文は「条件が成り立つ間、処理を続ける」という考え方を中心にした繰り返し構文です。何回実行されるか事前に分からない場合でも使えるため、ユーザー入力のチェックや状態が変化するまで待つ処理などに向いています。ただし、条件を変化させる処理を書き忘れると無限ループになってしまうため、注意深く書く必要があります。
do-while文は、最低一回は必ず処理を実行する点が最大の特徴です。条件判定が最後に行われるため、「一度は試してから続けるか判断する」流れに向いています。メニュー表示やゲームの再挑戦確認など、実際のプログラムでも使われる場面は意外と多く、知っておくと表現の幅が広がります。
まとめとしてのサンプルプログラム
#include <stdio.h>
int main(void)
{
int i = 1;
/* for文の例 */
for(i = 1; i <= 3; i++)
{
printf("for文:%d回目\n", i);
}
/* while文の例 */
i = 1;
while(i <= 3)
{
printf("while文:%d回目\n", i);
i++;
}
/* do-while文の例 */
i = 1;
do
{
printf("do-while文:%d回目\n", i);
i++;
}while(i <= 3);
return 0;
}
このサンプルでは、同じ回数の繰り返しをfor文、while文、do-while文でそれぞれ書いています。動きは似ていますが、構文の考え方や書き方が異なることが分かります。こうして並べて見ることで、それぞれの特徴がよりはっきり理解できます。
繰り返し処理を理解すると何が変わるのか
繰り返し処理を正しく使えるようになると、C言語で書けるプログラムの幅は一気に広がります。単純な表示処理だけでなく、データの集計、検索、ゲームの進行管理、入力チェックなど、多くの処理が自然に書けるようになります。for文とwhile文を使い分ける意識が身につくと、コードの読みやすさや安全性も向上します。
初心者のうちは、どの構文を使えばよいか迷うこともありますが、「回数」「条件」「最低一回」という視点で整理すると、選びやすくなります。繰り返し処理はC言語だけでなく、ほかの多くのプログラミング言語でも共通する重要な基礎です。ここで身につけた考え方は、今後の学習でも必ず役に立ちます。
生徒:「for文とwhile文って、最初は同じに見えましたけど、考え方が違うんですね」
先生:「そうですね。回数なのか条件なのか、そこが大きな違いです」
生徒:「do-while文は必ず一回動くのがポイントなんですね」
先生:「その通りです。使う場面は少なくても、知っていると表現が広がります」
生徒:「繰り返し処理が分かってきて、プログラムが書ける感じがしてきました」
先生:「それが大切です。ループ処理を理解すると、C言語の基礎が一段階レベルアップしますよ」