C言語では、繰り返し処理を行う方法がいくつかあります。
その中でも while文 は、
「条件を満たしている間だけ処理を続ける」構文です。
while文とは
while文とは、条件がtrueの間、処理を繰り返す制御構文です。
for文が「回数ベース」なのに対して、
while文は「条件ベース」で動きます。
基本構文
while (条件式) {
処理;
}必ず1回は処理が実行されるdo-while文はこちらの記事で解説しています。

実行の流れ(ざっくり)
- 条件式を評価
- trueなら処理を実行
- 再び条件式へ戻る
- falseになったら終了
C言語文法解説シリーズ
本記事は「C言語文法解説シリーズ」の1つです。
C言語の文法を、組み込み開発の視点も交えて解説しています。
C言語文法解説シリーズ一覧はこちら

⭐ 1ループごとの動き(ここが重要)
int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}1回目
- 条件:0 < 3 → true
- 実行:0を出力
- 更新:i = 1
2回目
- 条件:1 < 3 → true
- 実行:1を出力
- 更新:i = 2
3回目
- 条件:2 < 3 → true
- 実行:2を出力
- 更新:i = 3
4回目
- 条件:3 < 3 → false
→ 終了
💡 for文との違い(超重要)
初心者さんwhile文ってfor文と何が違うの?



書き方が違うだけじゃないんですか?



一番大事なのは用途だね。“回数”か“条件”か



なるほど、終わるタイミングが違うんですね!



実際に同じ処理を書いてみるね
for文
for (int i = 0; i < 3; i++) {
printf("%d\n", i);
}for文についてはこちらの記事で解説しています。


while文
int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}🎯 本質的な違い
| 観点 | for文 | while文 |
|---|---|---|
| 書き方 | 1行にまとまる | 分かれる |
| 向いている処理 | 回数が決まっている | 条件で繰り返す |
🧠 使い分け
for文
- 配列処理
- 決まった回数のループ
👉 「何回やるか」が分かる
while文
- 入力待ち
- 状態監視
- 条件成立まで待つ
👉 「いつ終わるか分からない」
goto文でもループ処理は可能ですが、現在はあまり使われません。


⚡ 組み込みでの使い方
while (1) {
// メインループ
}組み込みでは、プログラムは終了せず
この中でずっと動き続けます。
⚠️ よくあるミス(かなり重要)
更新し忘れる
int i = 0;
while (i < 3)
{
printf("%d\n", i);
}👉 iが変わらない → 無限ループ
breakとcontinueの違い
for文では、ループの途中で処理を変えたいことがあります。
そのときに使うのが break と continue です。
break(ループ終了)
int i = 0;
while (i < 5)
{
i++;
if (i == 3)
break;
printf("%d\n", i);
}実行結果
0
1
2👉 iが3になった瞬間にループ自体が終了します
continue(スキップ)
int i = 0;
while (i < 5)
{
i++;
if (i == 3)
continue;
printf("%d\n", i);
}実行結果
0
1
2
4👉 i=3のときだけ処理を飛ばして、次のループへ進む
ここで使用しているif文についてはこちらの記事で解説しています。


💡 breakとcontinueの違いまとめ
| break | continue | |
|---|---|---|
| 動き | ループ終了 | 次のループへ |
| よく使う場面 | 条件を満たしたら終了 | 特定条件だけスキップ |
🧠 よくあるつまずきポイント
初心者はよくこう思います👇



continueって途中で終わるの?
→ ❌違います
→ ループは続くが、その回だけ処理しない
breakとcontinueの違いの詳細はこちらの記事で解説しています。


まとめ
- while文は条件ベースのループ
- 条件がtrueの間だけ繰り返す
- 更新忘れに注意(無限ループ)
- 状態監視や待ち処理に向いている
この記事が参考になった方へ
制御構文を含むC言語の基本文法をこちらの記事で整理しています。


技術に関するご相談・開発・自動化ツール作成・記事執筆などのご依頼も承っています。
小さなご相談からでもお気軽にご連絡ください。









コメント