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

11.繰り返し(While)


前回の繰り返しプログラムは、最初から、終了するための条件が見えていました。今回は、いつ終了するか特に決まってはいないが、それが出現したときに終了するようなプログラムを考えます。
今回対話型のプログラムにするため下のサイトProgramiz上でプログラムを書いてみましょう。
新しいタブで開いてください。ctrlキーを押しながらクリックで新しいタブで開きます。
programiz.com

このサイトもブックマークバーに入れておいてください。

<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);
}


アイコンのShareからリンクの保存はできますが、ソースコードのみです。
ideoneとは違って実行結果は見せてくれません。
2度手間にはなりますが、googleドキュメントに完成したコード(左側のみ)をコピー&ペーストしておきましょう。(提出用&保存用)

続いて、合計が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を超えたとき(計算が終了したとき)足し算をした回数を表示させるプログラムを追加すること。
前のページへ このページの先頭へ 次のページへ 


プログラミングホーム