新手语法问题:错误:预期';'在')'令牌之前

时间:2012-07-02 23:29:46

标签: c

在两个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--;
                }
        }
}

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

2 个答案:

答案 0 :(得分:5)

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

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

应该是

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

和你的函数中的其他for循环相同。

例如,这是使用for设置无限循环的方法:

for(;;)

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

对于for循环,这可能是tutorial/reference,这有助于作为评论/参考。

答案 1 :(得分: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--;
            }
    }

}