== Why is this an issue? include::../description.adoc[] == How to fix it === Code examples The following example demonstrates the behavior of the rule with the default threshold of 3 levels of nesting and one of the potential ways to fix the code smell by introducing guard clauses: ==== Noncompliant code example [source,javascript,diff-id=1,diff-type=noncompliant] ---- if (condition1) { // Compliant - depth = 1 /* ... */ if (condition2) { // Compliant - depth = 2 /* ... */ for (let i = 0; i < 10; i++) { // Compliant - depth = 3 /* ... */ if (condition4) { // Noncompliant - depth = 4, which exceeds the limit if (condition5) { // Depth = 5, exceeding the limit, but issues are only reported on depth = 4 /* ... */ } return; } } } } ---- ==== Compliant solution [source,javascript,diff-id=1,diff-type=compliant] ---- if (!condition1) { return; } /* ... */ if (!condition2) { return; } for (let i = 0; i < 10; i++) { /* ... */ if (condition4) { if (condition5) { /* ... */ } return; } } ---- include::../resources.adoc[] 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[]