Why this matters
Using `==` or `!=` in loop termination conditions can lead to infinite loops due to floating-point precision errors or unexpected comparisons. Prefer relational operators (`<`, `>`) instead.
Ensure that relational operators (`<`, `>`) are used instead of equality operators (`==`, `!=`) in loop termination conditions.
Using `==` or `!=` in loop termination conditions can lead to infinite loops due to floating-point precision errors or unexpected comparisons. Prefer relational operators (`<`, `>`) instead.
Side-by-side examples engineers can pattern-match during review.
for (int i = 1; i != 10; i += 2) // Noncompliant. Infinite; i goes from 9 straight to 11.
{
//...
}for (int i = 1; i <= 10; i += 2) // Compliant
{
//...
}for (int i = 1; i != 10; i += 2) // Noncompliant. Infinite; i goes from 9 straight to 11.
{
//...
}for (int i = 1; i <= 10; i += 2) // Compliant
{
//...
}From the same buckets as this rule.
Check if loops use equality operators (== or !=) in termination conditions. These can lead to infinite loops if the condition is never met exactly. Instead, use relational operators like < or > for safer loop termination.