Namaran

Code daily. Without assist.

2026-09-12

print_range.cpp

#include <iostream>

int main() {
    int i = 0;
    while (i < 5) {
        std::cout << i << ' ';
    }
    std::cout << '\n';
}

0から4までを表示して終わるはずのプログラムですが、実行すると戻ってきません。原因を特定し、最小限の変更で直してください。

Answer

原因は、ループ本体の中でiを一度も更新していないことです。for (int i = 0; i < 5; ++i)なら更新部分が構文に組み込まれているので書き忘れようがありませんが、whileは条件式と更新を自分で管理しなければならず、++i;を書き忘れるとiは永遠に0のままで条件が真であり続けます。修正はループ本体の末尾に++i;を1行足すだけです。