﻿# V535\. The 'X' variable is used for this loop and outer loops\.

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

Схематически эта ошибка выглядит следующим образом:

```cpp
size_t i, j;
for (i = 0; i != 5; i++)
  for (i = 0; i != 5; i++)
    A[i][j] = 0;
```

Конечно, это искусственный пример и в реальном приложении ошибка может быть не так очевидна\. Корректный вариант кода:

```cpp
size_t i, j;
for (i = 0; i != 5; i++)
  for (j = 0; j != 5; j++)
    A[i][j] = 0;
```

Использование одной переменной для внешнего и внутреннего цикла не всегда является ошибкой\. Рассмотрим пример корректного кода, где анализатор не будет выдавать предупреждение:

```cpp
for(c = lb; c <= ub; c++)
{
  if (!(xlb <= xlat(c) && xlat(c) <= ub))
  {
    Range * r = new Range(xlb, xlb + 1);
    for (c = lb + 1; c <= ub; c++)
      r = doUnion(
        r, new Range(xlat(c), xlat(c) + 1));
    return r;
  }
}
```

В этом коде внутренний цикл "for \(c \= lb \+ 1; c <\= ub; c\+\+\)" организован при помощи переменной "c"\. Внешний цикл также использует переменную "c"\. Но ошибки здесь нет\. После того, как выполнится внутренний цикл, сразу произойдет выход из функции при помощи оператора "return r"\.