0

在两个 for 循环(即:for(len... 和 for(wid...))上,我收到相同的错误消息:

错误:预期的';' 在 ')' 标记之前

void
init(void)
{
    //fills board up with numbers
    int tile = (d*d - 1);
    int len = 0;
    int wid = 0;

    for(len < d; len++)
        {
            for(wid < d; wid++)
                {
                    board[len][wid] = tile;
                    tile--;
                }
        }
}

很抱歉问了一个和以前类似的问题,但我是一个非常困惑的新手!

4

2 回答 2

5

每个 for 循环都需要有它的 3 个部分(初始化、测试、更新),如果你没有其中一个或多个,你仍然需要提供两个;,所以

for(len < d; len++)
    ^
    |

真的应该

    |
    v
for(;len < d; len++)

函数中的另一个 for 循环也是如此。

例如,您可以使用以下方法设置无限循环for

for(;;)

其中所有部分都被跳过,但仍然需要两个分号。

也许这是for 循环上的教程/参考,作为评论/参考很有帮助。

于 2012-07-02T23:30:46.873 回答
5

一般来说,一个 for 循环包含三个部分:

for (initialization; check; update) { ... }

在您的代码中,您缺少初始化部分。您在 for 循环中缺少一个分号,表示您不需要初始化子句(因为您在上面执行了此操作):

void
init(void)
{
//fills board up with numbers
int tile = (d*d - 1);
int len = 0;
int wid = 0;

for(;len < d; len++)
    {
        for(;wid < d; wid++)
            {
                board[len][wid] = tile;
                tile--;
            }
    }

}

于 2012-07-02T23:30:58.497 回答