Nested if, for, while, switch, and try statements is a key ingredient for making what's known as "Spaghetti code".

Such code is hard to read, refactor and therefore maintain.

Noncompliant Code Example

With the default threshold of 3:

  if (condition1) {                  // Compliant - depth = 1
    ...
    if (condition2) {                // Compliant - depth = 2
      ...
      for($ = 0; $i < 10; $i++) {  // Compliant - depth = 3, not exceeding the limit
        ...
        if (condition4) {            // Non-Compliant - depth = 4
          if (condition5) {          // Depth = 5, exceeding the limit, but issues are only reported on depth = 4
            ...
          }
          return;
        }
      }
    }
  }