The 'break' and 'continue' branching statements increase the essential complexity of the source code by removing the ability to linearly read the flow of statements. Using one 'break' or 'continue' statement in a loop should be highly motivated but is acceptable since this allows optimal coding in some specific cases. However using more than one of those statements in a loop leads to unmaintainable source code.

The following code snippet illustrates this rule:

for (i = 0; i < 10; i++) { // Compliant
  if (i % n == 0) {
    break;
  }
}

for (i = 0; i < 10; i++) { // Non-Compliant
  if (i%n == 0) {
    break;
  }
  if (n%i == 0) {
    continue;
  }
}