## Why is this an issue?

Nested `switch` structures are difficult to understand because you can easily confuse the cases of an inner `switch` as belonging to an outer statement or expression. Therefore nested `switch` statements and expressions should be avoided.

Specifically, you should structure your code to avoid the need for nested `switch` statements or expressions, but if you cannot, then consider moving the inner `switch` to another method.

### Noncompliant code example

    void foo(int n, int m) {
      switch (n) {
        case 0:
          switch (m) {  // Noncompliant; nested switch
            // ...
          }
        case 1:
          // ...
        default:
          // ...
      }
    }

### Compliant solution

    void foo(int n, int m) {
      switch (n) {
        case 0:
          bar(m);
        case 1:
          // ...
        default:
          // ...
      }
    }

    void bar(int m){
      switch(m) {
        // ...
      }
    }