-1

私は C++ に非常に慣れておらず、1 行の入力を取得して画面に出力する以外のプログラミングは初めてです。(私は Alex Alllain の Jumping Into C++ から作業しています。) 各正方形に番号が付けられた単純な 3x3 グリッド (TicTacToe ボード) を印刷しようとしています。しかし、無限ループで 1 でスタックしています。問題は信じられないほど単純で、これを読んでいるすべての人にとっておそらく明らかだと確信していますが、私にはそれがわかりません。

これが私のコードです。あなたの助けに感謝します:

    int main()
    {
        for ( int i = 1; i < 10; i++ )
        {
            cout << "_____________\n";
            while ( i <= 3 )
            {
                cout << "| " << i <<" |";
            }
            cout << "\n";
            cout << "|---|---|---|\n";
            while ( i > 3 && i <= 6)
            {
                cout << "| " << i <<".|";
            }
            cout << "/n";
            cout << "|---|---|---|\n";
            while ( i > 6 && i <= 9)
            {
                cout << "| " << i <<".|";
            }
            cout << "|___|___|___|\n";
            cout << "\n";
        }
    }
4

4 に答える 4

3

まず、外側のループがあります

for ( int i = 1; i < 10; i++ )

次に、内側のループがあります

while ( i <= 3 )

ただし、その内側のループに初めて到達すると、内側のループi1は決して変化しないため、式i <= 3常に真になり、無限ループになります。

于 2013-06-23T00:34:50.097 に答える
2

while の代わりに if を使用します。これらのループでは何もインクリメントしていません。

于 2013-06-23T00:33:33.610 に答える
1

内側の for ループで試しましたか?

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        // print your stuff here
    }
    // new line comes here
 }
于 2013-06-23T00:38:50.863 に答える
0

「while」は単なる分岐命令ではなく、ループ構造です。「while」ステートメントを「if」に変更すれば問題ありません。

于 2013-06-23T00:40:03.290 に答える