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 つの部分 (初期化、テスト、更新) が必要であり、そのうちの 1 つ以上がない場合でも、2 つを指定する必要があります;

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

本当にあるべき

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

関数内の他の for ループについても同じです。

たとえば、次のように使用して無限ループを設定しforます。

for(;;)

すべての部分がスキップされますが、2 つのセミコロンは引き続き必要です。

おそらく、これはfor ループのチュートリアル/リファレンスであり、レビュー/リファレンスとして役立ちます。

于 2012-07-02T23:30:46.873 に答える
5

一般に、for ループには次の 3 つの部分があります。

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 に答える