﻿# V3150\. Loop break conditions do not depend on the number of iterations\.

The analyzer has detected a loop whose termination conditions do not depend on the number of iterations\. Such a loop can iterate 0, 1, or an infinite number of times\.

Consider the following example of such a loop:

```cpp
void Foo(int left, int right)
{
  while(left < right) 
  { 
    Bar();
  }
}
```

The problem is with the while loop: the variables being checked in the condition do not change; therefore, the loop will either never terminate or never start\.

Here is another example of code that would trigger this diagnostic\. A loop may become infinite if you forget to rethrow an exception in the 'try\-catch' block down the stack:

```cpp
while (condition)
{
  try {
    if(Foo())
    {
       throw new Exception();
    }
  }
  catch (Exception ex) 
  { 
    ....
  }
}
```

To have this loop terminate on throwing the exception, you can, for example, rethrow this exception from the catch section using the throw statement:

```cpp
while (condition)
{
  try {
    if(Foo())
    {
      throw new Exception();
    }
  }
  catch (Exception ex) 
  { 
    ....      
    throw; 
  }
}
```