C言語で繰り返し処理を行うときによく使われるのが、while文です。条件が真の間だけ処理を続けるというシンプルな構文で、柔軟なループを実現できます。この記事では、C言語 繰り返しの中でも重要なwhile 使い方を、初心者向けにわかりやすく紹介します。また、for文 違いや実践例も交えて、実際に使える知識を身につけましょう。
while文とは?|条件が真の間だけ処理を繰り返す制御構文
while文は、条件式が真・trueの間だけ処理を繰り返す制御構文です。プログラムが条件を評価し、真であればブロック内の処理を実行、偽・falseになればループを終了します。
while (条件式) {
// 繰り返す処理
}
基本的なwhile文の仕組みや構文の考え方については、while文の基本と使い方をわかりやすく解説した入門記事も参考になります。
条件式が1・真である間、ループが続きます。一度でも条件が0・偽になると、ループが終了します。
for文との大きな違い
for文は繰り返す回数があらかじめ決まっている場合に使います。一方、while文は条件を満たす限り繰り返すため、回数が事前に分からないときに適しています。
while文の基本構文と書き方
シンプルな例を見てみましょう。
int i = 0;
while (i < 5) {
printf("%dn", i);
i++;
}
このプログラムでは、iが5未満の間に処理を繰り返します。
出力結果は次の通りです。
0
1
2
3
4
複数文を繰り返す場合の波括弧 {} の使い方
1つの処理なら括弧は省略できますが、複数の処理を行うときは必ず{}で囲みましょう。
while (i < 3)
printf("%dn", i++);
while (i < 3) {
printf("%dn", i);
i++;
}
上の2つは同じ意味ですが、後者の方が安全で読みやすいです。
条件式の評価タイミング
while文では処理を始める前に条件を判定します。そのため、条件が初めから偽のときは、1回も実行されません。
while文とfor文の違いを比較して理解しよう
| 比較項目 | while文 | for文 |
|---|---|---|
| 初期化の場所 | ループの外で記述 | 文の先頭で記述可能 |
| 条件判定 | 毎回先頭で実行 | 毎回先頭で実行 |
| 更新処理 | ブロック内で記述 | 文の末尾で記述可能 |
| 主な用途 | 条件に基づく繰り返し | 回数が決まった繰り返し |
どちらを使うべきかの判断基準も大切です。
- while文・繰り返し回数が不明、条件が変動する処理
- for文・繰り返し回数が明確、カウンタ変数で制御できる処理
実践例①・カウントアップの基本ループ
#include <stdio.h>
int main(void) {
int i = 1;
while (i <= 10) {
printf("%dn", i);
i++;
}
return 0;
}
出力結果:1〜10の数値が順に表示されます。
無限ループを避けるためには更新処理を忘れないようにしましょう。
実践例②・条件を満たすまで繰り返す処理
#include <stdio.h>
int main(void) {
int num = 1;
while (num != 0) {
printf("数値を入力してください(0で終了):");
scanf("%d", &num);
printf("入力された値:%dn", num);
}
return 0;
}
ユーザーが「0」を入力するまで繰り返します。break文やcontinue文を使えば、さらに柔軟な制御が可能です。
実践例③・約数を求めるプログラム
#include <stdio.h>
int main(void) {
int n, i = 1;
printf("整数を入力:");
scanf("%d", &n);
printf("%dの約数:", n);
while (i <= n) {
if (n % i == 0)
printf("%d ", i);
i++;
}
return 0;
}
このように、while文を使えば条件に応じた柔軟なループ処理ができます。
while文を使うときの注意点
条件式や初期化を誤ると無限ループが発生します。変数初期化や更新処理は慎重に書きましょう。
また、SQLなどの制御構文におけるWHILE文の使い方も比較してみると、ループの概念をより深く理解できます。たとえば、T-SQLでのWHILE文の書き方では、条件付きの繰り返し処理がC言語に似た構造で実装されています。
さらに、実際のデータ処理の現場でWHILE文を使う例として、SQL ServerでのWHILE文を使った繰り返し処理の例も参考になります。
まとめ|while文を使いこなせば柔軟な処理が可能に
while文は、条件を満たす限り処理を繰り返す構文です。for文との違いを理解して使い分けることで、より柔軟で効率的なプログラムが書けます。
- 条件が真の間、処理を繰り返すのがwhile文
- 回数が不明なループに適している
- 更新処理や条件式の管理が重要
- break/continueでループ制御が可能
小さなサンプルから試して、C言語 繰り返し構文の感覚をつかんでみましょう。while文を理解すれば、プログラムの制御構造が一気に広がります。


