Nested ``++if++``, ``++switch++``, ``++for++``, ``++foreach++``, ``++while++``, ``++do++``, and ``++try++`` statements are key ingredients 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(int i = 0; i < 10; i++) // Compliant - depth = 3, not exceeding the limit
    {  
      /* ... */
      if (condition4) // Noncompliant - depth = 4
      {            
        if (condition5) // Depth = 5, exceeding the limit, but issues are only reported on depth = 4
        {          
          /* ... */
        }
        return;
      }
    }
  }
}
----

ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]
