C 言語 | フロー制御 | do-while 文

繰り返す文を実行した後で、繰り返すかどうかを判断する do 文について説明する。do 文は while 文とは異なり、条件に関係なく必ず 1 回は文を実行する。

条件判定を後で行う繰り返し処理

while 文は、繰り返す文を実行する前に条件式を評価し、繰り返し処理を続けるかどうかを決める。これに対して、文を実行した後で条件式を評価するものが do 文である。

do 文

do 文 while (条件式);

繰り返し対象の文を先に実行する点を除けば、do 文は基本的に while 文と同じである。while 文は条件式を評価してからループを実行するため、最初の評価が偽なら文を一度も実行しない。条件の結果にかかわらず最低 1 回は実行したい場合に、do 文が役立つ。

コード 1

#include <stdio.h>

int main()
{
  int iCount = 1 , iMax;
  printf("반복 횟수를 입력하십시오. >");
 scanf("%d" , &iMax);

  do {
    printf("%d번째 루프입니다.\n" , iCount++);
  } while (iCount <= iMax);
 return 0;
}

コード 1 は繰り返し回数を入力し、指定された値を基に do 文で処理を繰り返す。while 文との大きな違いは、iCount <= iMax が成立しない場合でも必ず 1 回は文を実行する点である。入力値が負数や 0 であっても、条件式を文の実行後に評価するため、do 文は必ず 1 回実行される。

特殊な場合を除けば、do 文を使う機会は多くない。しかし、ほかの人が書いたコードを読むときに登場する可能性があり、アルゴリズムによっては do 文を使うと分かりやすく書ける。覚えておくとよい。