break;
is an unstructured control flow statement which makes code harder to read.
Ideally, every loop should have a single termination condition.
Noncompliant code example
for (element = list.first; element != null; element = element->next) { // First termination condition
if (!matches(element->value)) { // Second termination condition
break; // Noncompliant
}
/* ... */
}
Compliant solution
// Compliant
for (element = list.first; element != null && matches(element->value); element = element->next) {
/* ... */
}