while文とは?C言語の繰り返し処理をfor文との違いも含めてわかりやすく解説

C言語では、繰り返し処理を行う方法がいくつかあります。

その中でも while文 は、
「条件を満たしている間だけ処理を続ける」構文です。


目次

while文とは

while文とは、条件がtrueの間、処理を繰り返す制御構文です。

for文が「回数ベース」なのに対して、
while文は「条件ベース」で動きます。


基本構文

C
while (条件式) {
    処理;
}

必ず1回は処理が実行されるdo-while文はこちらの記事で解説しています。

実行の流れ(ざっくり)

  1. 条件式を評価
  2. trueなら処理を実行
  3. 再び条件式へ戻る
  4. falseになったら終了

C言語文法解説シリーズ

本記事は「C言語文法解説シリーズ」の1つです。
C言語の文法を、組み込み開発の視点も交えて解説しています。

C言語文法解説シリーズ一覧はこちら

⭐ 1ループごとの動き(ここが重要)

C
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(初期化;条件式;更新式)for (初期化; 条件式; 更新式)

C
for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

for文についてはこちらの記事で解説しています。

while文

C
int i = 0;

while (i < 3) {
    printf("%d\n", i);
    i++;
}

🎯 本質的な違い

観点for文while文
書き方1行にまとまる分かれる
向いている処理回数が決まっている条件で繰り返す

🧠 使い分け

for文

  • 配列処理
  • 決まった回数のループ

👉 「何回やるか」が分かる


while文

  • 入力待ち
  • 状態監視
  • 条件成立まで待つ

👉 「いつ終わるか分からない」


goto文でもループ処理は可能ですが、現在はあまり使われません。

⚡ 組み込みでの使い方

C
while (1) {
    // メインループ
}

組み込みでは、プログラムは終了せず
この中でずっと動き続けます。


⚠️ よくあるミス(かなり重要)

更新し忘れる

C
int i = 0;

while (i < 3)
{
    printf("%d\n", i);
}

👉 iが変わらない → 無限ループ


breakとcontinueの違い

for文では、ループの途中で処理を変えたいことがあります。
そのときに使うのが breakcontinue です。

break(ループ終了)

C
int i = 0;

while (i < 5)
{
    i++;

    if (i == 3)
        break;

    printf("%d\n", i);
}

実行結果

C
0
1
2

👉 iが3になった瞬間にループ自体が終了します


continue(スキップ)

C
int i = 0;

while (i < 5)
{
    i++;

    if (i == 3)
        continue;

    printf("%d\n", i);
}

実行結果

C
0
1
2
4

👉 i=3のときだけ処理を飛ばして、次のループへ進む


ここで使用しているif文についてはこちらの記事で解説しています。

💡 breakとcontinueの違いまとめ

breakcontinue
動きループ終了次のループへ
よく使う場面条件を満たしたら終了特定条件だけスキップ

🧠 よくあるつまずきポイント

初心者はよくこう思います👇

初心者さん

continueって途中で終わるの?

→ ❌違います
ループは続くが、その回だけ処理しない


breakとcontinueの違いの詳細はこちらの記事で解説しています。

まとめ

  • while文は条件ベースのループ
  • 条件がtrueの間だけ繰り返す
  • 更新忘れに注意(無限ループ)
  • 状態監視や待ち処理に向いている

この記事が参考になった方へ

制御構文を含むC言語の基本文法をこちらの記事で整理しています。

技術に関するご相談・開発・自動化ツール作成・記事執筆などのご依頼も承っています。

小さなご相談からでもお気軽にご連絡ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

組み込みソフトエンジニアとして働きながら、
C言語・メモリ・ポインタなどの基礎から実務まで解説しています。

副業・キャリアについても実体験ベースで発信中です。

X(旧Twitter)でも発信しています
👉 Xはこちら

▼まずはここから読むのがおすすめ
C言語文法シリーズ
メモリ領域解説シリーズ

コメント

コメントする


目次