【6日でできるC言語入門】while文・do〜while文

 C言語には、while文do〜while文という2種類の「条件による繰り返し処理(ループ)」があります。for文と異なり、「回数が決まっていない」または「条件に応じて繰り返し回数が変わる」場合に使われることが多いです。
ここでは、while文・do〜while文の書式や動作、使い分け、違い、注意点を詳しく解説します。

1.while文

1.1. while文の基本と仕組み

while文は、条件式が成立している間だけ処理を繰り返す構文です。

while文の基本書式

while (条件式) {
    // 繰り返したい処理
}
項目説明
条件式成立している間(True)処理を繰り返す
増減処理本文内で記述する(自動的には増えない)

サンプルプログラム1:0から4まで表示

プロジェクト/ファイル名: Lesson28_1/main.c

#include <stdio.h>

int main(void) {
    int i = 0;
    while (i < 5) {
        printf("%d ", i);
        i++;
    }
    printf("\n");
    return 0;
}

実行結果

0 1 2 3 4

1.2. while文の注意点

  • 無限ループに注意:条件式がずっとTrueだと終わらない
  • 初期化や増減処理は明示的に書く

2.do〜while文

2.1. do〜while文の基本と仕組み

do〜while文は、必ず1回は処理を実行してから条件判定を行うのが特徴です。

do〜while文の基本書式

do {
    // 繰り返したい処理
} while (条件式);
項目説明
先に処理必ず1回は処理が実行される。
条件判定処理の後で条件式を判定

サンプルプログラム2:0から4まで表示

プロジェクト/ファイル名: Lesson28_2/main.c

#include <stdio.h>

int main(void) {
    int j = 0;
    do {
        printf("%d ", j);
        j++;
    } while (j < 5);
    printf("\n");
    return 0;
}

実行結果

0 1 2 3 4

3. while文とdo〜while文の違い

文法最初の条件判定最低1回の処理実行典型的な使い道
while文実行前しない条件が成立している間のみ繰返し
do〜while文実行後するユーザー入力待ち等の1回保証

サンプルプログラム3:違いが分かる例

プロジェクト/ファイル名: Lesson28_3/main.c

#include <stdio.h>

int main(void) {
    int num;
    printf("1以上の値を入力してください:");
    scanf("%d", &num);

    int i = 1;
    printf("while文で実行\n");
    while (i <= num) {
        printf("*");
        i++;
    }
    printf("\ndo~while文で実行\n");
    i = 1;
    do {
        printf("*");
        i++;
    } while (i <= num);
    printf("\n");
    return 0;
}

実行例1(3を入力)

1以上の値を入力してください:3
while文で実行
***
do~while文で実行
***

実行例2(0を入力)

1以上の値を入力してください:0
while文で実行

do~while文で実行
*
  • while文:条件に合わなければ1回も実行しない
  • do〜while文:条件に合わなくても必ず1回は実行

まとめ

  • while文は「条件が合う限り繰り返す」構文。事前に条件判定。
  • do〜while文は「最低1回は必ず実行」する。事後に条件判定。
  • 用途に応じて正しく使い分けましょう。
  • 無限ループや増減処理の書き忘れに注意!

while文・do〜while文を使いこなせば、より柔軟なプログラム作成が可能になります。