-1

我对 C++ 非常陌生,并且除了获取单行输入并将其打印到屏幕之外,还可以编写任何东西。(我正在从 Alex Alllain 的 Jumping Into C++ 开始工作。)我正在尝试打印一个简单的 3x3 网格,每个正方形都有编号(井字棋板。)但我在无限循环中被困在 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 )

但是,当您第一次到达该内部循环时,i它将1永远不会在内部循环中更改,因此表达式i <= 3始终为真,因此您有一个无限循环。

于 2013-06-23T00:34:50.097 回答
2

使用 if 而不是 while。您不会在这些循环中增加任何内容。

于 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 回答