前のページへ このページの先頭へ 次のページへ 

11.繰り返し(While)


前回の繰り返しプログラムは、最初から、終了するための条件が見えていました。今回は、いつ終了するか特に決まってはいないが、それが出現したときに終了するようなプログラムを考えます。

<Whileステートメント>

まず、足し算を実行していって、ゼロが入力されたときにすべての計算を終了させるプログラムを書いて見ましょう。

サンプル11−1
#include <stdio.h>
int main()
{
 int num,total;
 num=-1;
 total=0;

 while(num != 0)
  {
  printf("整数値を入力してください。 \n");
  scanf("%d", &num);
  total = total + num;
  printf("これまでの合計 : %d\n",total);
  }
 printf("ゼロが入力されました。 \n");
return(0);
}

続いて、合計が100を超えたときに終了させるようなプログラムを書いて見ましょう。

サンプル11−2
#include <stdio.h>
int main()
 {
 int num,total;
 num=-1;
 total=0;

 while(total <= 100)
  {
  printf("整数値を入力してください。 \n");
  scanf("%d", &num);
  total = total + num;
  printf("これまでの合計 : %d\n",total);
  }
 printf("計算が限界を超えました。 \n");
 return(0);
}

Whileステートメントを使う際には、単純な<While>を使う場合と、<Do-While>を使う場合があります。次は、<Do-While>を使った場合の記述です。

サンプル11−3
#include <stdio.h>
int main()
 {
 int num,total;
 num=-1;
 total=0;

  do
  {
  printf("整数値を入力してください。 \n");
  scanf("%d", &num);
  total = total + num;
  printf("これまでの合計 : %d\n",total);
  }
  while(num != 0);
  printf("ゼロが入力されました。 \n");
return(0);
}

<While>の場合は、条件が成り立つ間、同じ処理を続け、<Do-While>の場合は、While条件を満たした場合には、Doに戻って処理を行う。そのような、考え方に違いになっています。

前回のドルの計算を行うプログラムをWhileで書いてみたのが次のプログラムです。

サンプル10−1改
#include <stdio.h>
int main()
 {コピペは自分の為ならず
 double dollar,yen;
 int loop;
 dollar=117.49;
 loop = 1;

 while (loop<=100)
  {
  yen = dollar * loop++;
  printf("%3d ドル | %8.2lf円\n",loop-1,yen);
  }
return(0);
}

ちょっとだけ表現を見やすくしています。


課題 サンプル11-2で、計算結果が100を超えたとき(計算が終了したとき)足し算をした回数を表示させるプログラムを追加すること。
前のページへ このページの先頭へ 次のページへ 


プログラミングホーム