# V625. Initial and final values of the iterator are the same. Consider inspecting the 'for' operator.

The analyzer has detected a potential error: initial and finite counter values coincide in the 'for' operator. Using the 'for' operator in such a way will cause the loop to be executed only once or not be executed at all.

Consider the following example:

    void beginAndEndForCheck(size_t beginLine, size_t endLine)
    {
      for (size_t i = beginLine; i < beginLine; ++i)
      {
       ...
      }

The loop body is never executed. Most likely, there's a misprint and "i < beginLine" should be replaced with the correct expression "i < endLine". This is the correct code:

    for (size_t i = beginLine; i < endLine; ++i)
    {
      ...
    }

Another example:

    for (size_t i = A; i <= A; ++i)
      ...

This loop's body will be executed only once. This is hardly what the programmer intended.

This diagnostic is classified as:

CWE-691

You can look at examples of errors detected by the V625 diagnostic.