C言語

繰り返し文(while文)

C言語では、for文と同じように、指定した文を繰り返す構文があります。そのひとつがwhile文です。
ここでは、while文 の基本的な使い方について解説します。

while文の仕組み

while文の構文は次の通りです。

while( 条件 ) {
  文1;
}

while文では、条件が成立している間(真の間)ブロック内の処理(文1)を繰り返します。
処理の流れは次の通りです。

  1. 条件を判定する
  2. 条件が真であれば、ブロック内の処理を実行する
  3. ブロックの最後まで実行すると、再び先頭に戻って条件を判定する
  4. 条件が偽になるまで、この繰り返しが続く

while文は最初に条件を判定してから処理を実行するため、条件が初めから偽の場合は、一度も繰り返しを行いません。

また、条件を変化させる処理を忘れると、ずっと繰り返し続く無限ループになるので注意しましょう。

具体例

次のプログラムは、「0 が入力されるまで整数の入力を繰り返す」例です。

#include <stdio.h>

int main(void)
{
  int number = 1;
  
  while(number != 0) {
    printf("整数を入力してください。(0:終了)\n");
    scanf("%d", &number);
  }
  
  printf("繰り返しを終了しました。\n");

  return 0;
}

このプログラムでは、変数 number が0でない限り、while 文の中で整数の入力を繰り返します。

処理の流れは次のようになります。

  1. 初期値として、変数 number1 を代入しておく
  2. 条件 number != 0 が真のため、ブロック内の処理を実行する
  3. 整数を入力し、再び条件を判定する
  4. 入力した値が 0 でなければ、再度入力を求める
  5. 0 を入力すると条件が偽となり、while 文を抜ける
  6. 最後に「繰り返しを終了しました。」と表示して処理が終了する

まとめ

  • while文は、「条件が成立している間」ブロック内の処理を繰り返す構文である
  • while文は、最初に条件を判定してから処理を実行する
  • 条件が真(成立)である限り、ブロック内の処理を繰り返
  • 条件がになると、繰り返しを終了する
  • 条件を変化させる処理を忘れると、無限ループになるので注意

また、for文との違いですが、
for文は、繰り返す回数が予め決まっているときに使います。
一方、while文は、繰り返し回数が決まっていないときに使います。

-C言語