10 繰り返し その2
while文
while文でもfor文と同様に、繰り返し処理を行うことが出来ます。for文との違いは、繰り返す条件が繰り返し回数とは限らない、ということです。
while文は、ある条件が成立する間、ブロックの中を繰り返します。これは、何回繰り返したらよいのかわからない場合にも便利です。
while(条件) {
文1;
文2;
}
それでは、実際にC言語でwhile文を使ってみましょう。ファイル名は、while.cとします。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main(void)
{
int i;
i = 1;
while (i <= 3) {
printf("%d\n", i);
i++;
}
return 0;
}
do-while文
do-while文は、while文とほぼ同じです。違いは、while文が繰り返しの条件を最初に書くのに対して、do-while文は最後に繰り返しの条件を書くということです。
つまり、do-while文では、条件が成立しなくても、1回はブロック内の処理が実行されます。
do {
文1;
文2;
} while(条件);
do-while文は、while文と違いブロックの最後の中括弧にセミコロンが必要なので、忘れないようにしてください。
それでは、do-while文を使ったコードを書いてみましょう。ファイル名は、do_while.cとします。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(void)
{
int i;
i = 1;
do {
printf("%d\n", i);
i++;
} while(i <= 3);
return 0;
}
while文とdo-while文の違い
while文とdo-while文の違いは、上で書いたプログラムの変数iの初期化部分を、以下のように変更して実行してみると感覚がつかめると思います。
int i;
i = 1;
を、
int i;
i = 4;
に変更してから、 while.cとdo-while.cを再コンパイルし、実行してみる。
練習問題
1. 2,4,6,8と表示するプログラム
while文またはdo-while文を使って、次のように画面に出力するコードを書いてください。ファイル名は、step.cとします。
2
4
6
8
2. 総和プログラム
while文またはdo-while文を使って、キーボードから入力された数字の総和を求めるプログラムを作りなさい。ただし、0が入力された時点でキーボードからの入力を終了し、その時点での合計を出力することとします。ファイル名はsouwa.cとします。
例:
1
10
2
-1
-5
0
合計は、7です。
おまけ問題
07 条件分岐 その1 練習問題 2.FizzBuzz問題 のプログラムを修正し、Errorを出力するまで繰り返し入力できるようにしてください。ファイル名はfizzbuzz3.cとします。