法大奥山研究室

 previous  contents

14.5. while


 次は「繰り返し文」(Iteration Statement)を見ましょう。繰り返し文には while文,do文,そして for文があります。ここでは,while文を見ます。

while文(while Statement)

while () 

while文は,条件 が真のとき, を実行します。ifでも確認したように,条件 が真とは 0 でないときとなります。 とは,複合文,空文を含む式文ifなどの「」です。

/* Example 14.5 */

#include <stdio.h>

int main(void)
{
       int sum = 0, x[6] = {0}, *p = x;
       printf("Input integers: ");
       scanf("%d%d%d%d%d", x, x + 1, x + 2, x + 3, x + 4);
       while(*p)
              sum += *p++;
       printf("sum = %d\n", sum);
       return 0;
}

これは,配列 x[6] に5つの数字を格納し,その和を求めるものです。scanf では5つの数字を読み込むので,x[5] = *(x + 5) は必ず 0 となります。while文は *p が真のとき式文 sum += *p++; を実行します。x + 5 までポインタ p が増加すると,繰り返し処理から抜けます。次は実行例です。(太字部分が入力箇所です。)

% ./a.out
Input integers: 1 2 3 4 5 6 7 8 9 10
sum = 15

5までの和となります。


 previous  contents