C言語のwhileループはどのように終了するのか。
C言語では、whileループは指定した条件を満たしたり、特定のコードを実行することで終了します。一般的な方法は次のとおりです。
- 条件が偽の場合:ループの条件が偽になると、ループは終了します。例えば:
int i = 0;
while (i < 10) {
printf("%d\n", i);
i++;
}
iの値が10になったとき、循環条件i < 10が真ではなくなるため、循環が終了します。
- break文の実行:break文を用いることで、ループ処理を途中で終了させることができます。例:
int i = 0;
while (1) {
printf("%d\n", i);
i++;
if (i == 10) {
break;
}
}
上記のコードではループの条件は1なので常に真となりますが、iの値が10になるとbreak文が実行されてループが強制終了されます。
- whileループが関数内で実行されている場合、return文を使用して関数の全体の実行を終了し、それによってループを終了することができる。例:
int sum(int n) {
int result = 0;
int i = 0;
while (1) {
result += i;
i++;
if (i > n) {
return result;
}
}
}
i の値が n より大きい時、上記のコードで return 文が実行されると、関数の sum は結果を返して実行を終了します。
何らかの条件下では、無限ループが発生し、プログラムが正常に終了できないことがあることに注意してください。これを回避するには、ループ内の条件を最終的には偽になることを確認するか、break ステートメントを使用してループを強制終了します。