while文、do〜while文

今回は繰り替え処理と言うものを説明します。
繰り返し処理は複数のデータに同じ処理を施したり、
さまざまな場面で使われます。

C言語で繰り返し処理を行うためにwhile文という構文が用意されています。
基本はif文と同じなのですぐになじめると思います。

while(条件式)
  条件式の部分が真の間繰り返す文;

しかし、たいていの場合はブロックを使用して、
次のような使い方をします。

#include <stdio.h>

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

----------
実行結果
----------
1回目
2回目
3回目
4回目
5回目

条件式の部分は i<=5 なので、変数iの値が6以上になるとループを抜けます。
これが典型的なwhile文の使い方なので覚えておいてください。

また、while文とよく似たもので、do文というものがあります。
それを使って上のプログラムを書き直したものを下に示します。

#include <stdio.h>

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

----------
実行結果
----------
1回目
2回目
3回目
4回目
5回目

とりあえず、最後にセミコロン(;)が付いているのに注意してください。
上のプログラムの場合、実行結果はまったくかわりません。
処理内容として変わったのは、ループを抜けるかのチェックを、
先にしているか後にしているかの差です。

while文の場合、はじめから条件式の部分が偽の場合、
while文の内容は一度も実行されませんが、
do文の場合は条件式のチェックを後でするため、
最低でも一回はdo文の内容は実行されます。

基本的にdo文が使われることは少なく、while文だけを覚えていれば問題はありませんが、
一応、二つの違いは覚えておいた方が得でしょう。