whileは条件を満たす限り繰り返します。
ループの中でカウンタ変数を必要とせず、単にループを継続する条件式だけを考慮すれば良い場合には、whileステートメントを使います。
whileステートメントの書式は単純で、次のとおりです。
while (expr)
statement;
exprは条件式で、ループを継続する条件式を(と)とで囲んで記述します。たとえば、この式を「i < 10」とすると、変数iの値が10未満である間、
ループを継続することになります。
statementは繰り返して実行するステートメントで、{と}で囲むことによって複数のステートメントを記述することもできます。
whileステートメントを使ったループは、通常、繰り返しのコードを実行する前に条件式を評価したいときに使います。
次の例は、0から9までの数を加算するコードの例です。
int x=0;
int i=0;
while (i < 10){
x +=i;
i++;
}
printf(("0~9を加算した値=%d\n", x);
実行結果は次のようになります。
0~9を加算した値=45
whileの条件式にtrueを指定することで、無限ループを作ることができます。ただし、このテクニックを使うときには、 breakステートメントなどを使ってループから確実に抜け出せるように注意を払う必要があります。
次の例はwhileの無限ループの例で、この場合、ifステートメントを使ってxの値が50を超えたらループから抜け出ます。
int x = 0;
int i =0;
while (true){
x += i;
i++;
if (x > 50)
break; // ループから抜け出る
}
printf("x=%d\n", x);
実行結果は次のようになります。
x=55