Nested ``++if++``, ``++for++``, ``++for in++``, ``++while++``, ``++do while++`` and ``++switch++`` statements are 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:

[source,swift]
----
  if condition1 {                  // Compliant - depth = 1
    /* ... */
    if condition2 {                // Compliant - depth = 2
      /* ... */
      for var 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
            /* ... */
          }
        }
      }
    }
  }
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::message.adoc[]

include::../parameters.adoc[]

include::../highlighting.adoc[]

'''
== Comments And Links
(visible only on this page)

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