2020-12-23 14:59:06 +01:00
|
|
|
Nested ``if``, ``for``, ``while``, ``do while`` and ``switch`` statements is a key ingredient for making what's known as "Spaghetti code".
|
2020-06-30 12:47:33 +02:00
|
|
|
Such code is hard to read, refactor and therefore maintain.
|
|
|
|
|
|
|
|
== Noncompliant Code Example
|
|
|
|
|
|
|
|
With the default threshold of 3:
|
2020-06-30 14:49:38 +02:00
|
|
|
|
2020-06-30 12:47:33 +02:00
|
|
|
----
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
----
|