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とします。