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

The following code snippet illustrates this rule with the default threshold of 3.

      if (condition1) {                  // Compliant - depth = 1
        /* ... */
        if (condition2) {                // Compliant - depth = 2
          /* ... */
          for(int i = 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;
            }
          }
        }
      }