【C++学習|初心者向け】C++の無限ループ:for文で「あえて」繰り返すための基礎知識

1. 導入:なぜ無限ループが必要なのか?

プログラミングを学んでいると、「処理を繰り返す」ためにfor文やwhile文を使いますよね。通常は「いつか終わる条件」を指定しますが、時には「終了条件を指定せず、プログラムが停止するまで動き続ける」仕組みが必要になります。例えば、ゲームのメイン処理や、サーバーの通信待ち受けなどがその代表例です。今回は、C++で最もシンプルに無限ループを作る方法を解説します。

2. 基礎知識:for文の仕組み

まずはC++のfor文の基本形を思い出しましょう。
for (初期化式; 条件式; 更新式) { 処理 }
これらは通常、変数を使って回数を指定しますが、実はこれらの式は「すべて省略可能」です。式をすべて取り払った `for ( ; ; )` という書き方をすると、条件判定が行われない(=常に真とみなされる)ため、無限にループが繰り返されます。

3. 実装/解決策:無限ループを制御する

無限ループは非常に強力ですが、そのままではプログラムが止まらなくなってしまいます。そのため、ループの内部で break文 を使い、特定のタイミングでループを強制終了させるのが一般的です。

4. サンプルプログラム

以下のコードは、ユーザーが「0」を入力するまで永遠に数値を入力し続けるプログラムです。コピー&ペーストして動作を確認してみてください。


include

int main() {
int input;

// for文の式をすべて省略することで無限ループを作成
for (;;) {
std::cout << "数値を入力してください (0で終了): "; std::cin >> input;

// 終了条件:0が入力されたらループを抜ける
if (input == 0) {
std::cout << "プログラムを終了します。" << std::endl; break; // ここでforループを強制終了 } std::cout << "入力された数値は: " << input << " です。" << std::endl; } return 0; }

5. 応用・注意点:無限ループの罠

無限ループを実装する際に最も注意すべき点は、「必ずループを抜ける出口(break文など)を用意すること」です。もし出口のない無限ループを作ってしまうと、CPU使用率が100%に張り付き、PCの動作が重くなったり、プログラムがフリーズしたりする原因になります。

また、C++の現場では `for (;;)` の代わりに `while (true)` が使われることも多いです。どちらも機能は同じですが、コードの可読性やチームのコーディング規約に合わせて使い分けるようにしましょう。まずは `for (;;)` の書き方に慣れて、ループ制御の基礎をしっかりとマスターしてくださいね。

コメント

タイトルとURLをコピーしました