C ++ - цикл не выполняется - PullRequest
       24

C ++ - цикл не выполняется

0 голосов
/ 26 октября 2018

Я не понимаю, почему это работает для цикла

void managingTable(unsigned char table[256][256][1])
{
    for (unsigned int x = 0; x <= 255; x++)
    {
        for (unsigned int y = 0; y <= 255; y++)
        {
            doSomethingWithTable();
        }
    }
}

и это не работает, когда y достигает 255, но без итерации по x, которая остается 0

void managingTable(unsigned char table[256][256][1])
{
    unsigned int x = 0;
    unsigned int y = 0;

    for (x; x <= 255; x++)
    {
        for (y; y <= 255; y++)
        {
            doSomethingWithTable();
        }
    }
}

Также это не работает:

void managingTable(unsigned char table[256][256][1])
{
    unsigned int x = 0;
    unsigned int y = 0;

    for ( ; x <= 255; x++)
    {
        for ( ; y <= 255; y++)
        {
            doSomethingWithTable();
        }
    }
}

1 Ответ

0 голосов
/ 26 октября 2018

Ваш первый пример объявляет новый y, начинающийся с 0 для каждой итерации x.

Ваш второй и третий примеры не сбрасывают значение y между итерациями x, поэтому будет выполняться только первый цикл y.Оставшиеся циклы y пропускаются, потому что y уже равен 256.

Изменение второго примера, как показано ниже, должно работать:

void managingTable(unsigned char table[256][256][1])
{
    unsigned int x = 0;

    for (x; x <= 255; x++)
    {
        unsigned int y = 0;
        for (y; y <= 255; y++)
        {
            doSomethingWithTable();
        }
    }
}
...