36 lines
802 B
Plaintext
36 lines
802 B
Plaintext
![]() |
Nested <code>switch</code> structures are difficult to understand because you can easily confuse the cases of an inner <code>switch</code> as belonging to an outer statement. Therefore nested <code>switch</code> statements should be avoided.
|
||
|
|
||
|
Specifically, you should structure your code to avoid the need for nested <code>switch</code> statements, but if you cannot, then consider moving the inner <code>switch</code> to another function.
|
||
|
|
||
|
== Noncompliant Code Example
|
||
|
|
||
|
----
|
||
|
switch($a) {
|
||
|
case "foo":
|
||
|
switch($b) { // Noncompliant
|
||
|
case "bar":
|
||
|
doSomething();
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
----
|
||
|
|
||
|
== Compliant Solution
|
||
|
|
||
|
----
|
||
|
function handleFoo($foo) {
|
||
|
switch($foo) {
|
||
|
case "bar":
|
||
|
doSomething();
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
switch($a) {
|
||
|
case "foo":
|
||
|
handleFoo($b);
|
||
|
break;
|
||
|
}
|
||
|
----
|