# V1008. No more than one iteration of the loop will be performed. Consider inspecting the 'for' operator.

Анализатор обнаружил потенциально возможную ошибку, связанную с тем, что в операторе 'for' используются странные начальное и конечное значения счетчика. Это может приводить к нарушению логики работы программы.

Рассмотрим пример подозрительного кода:

    int c = 0;
    if (some_condition)
    {
      ....
      c = 1;
    }
    for (int i = 0; i < c; ++i) {
      ....
    }

В данном случае цикл выполнится 0 или 1 раз. Следовательно, цикл можно заменить на оператор 'if'.

    int c = 0;
    if (some_condition)
    {
      ....
      c = 1;
    }
    if (c != 0)
    {
      ....
    }

Возможно, что в коде допущена ошибка при вычислении значения переменной, с которой сравнивается счётчик. Например, возможно требовалось написать такой код:

    int c = 0;
    if (some_condition)
    {
      ....
      c = 1 + n;
    }

    for (int i = 0; i < c; ++i)
    {
      ....
    }

Данная диагностика классифицируется как:

CWE-691

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V1008.