The ``++switch++`` statement should be used only to clearly define some new branches in the control flow. As soon as a ``++when++`` clause contains too many statements this highly decreases the readability of the overall control flow statement. In such case, the content of the ``++when++`` clause should be extracted into a dedicated function.

== Noncompliant Code Example

With the threshold set at ``++5++``:

----
public void foo(Integer value) {
  switch on value {
    when 1 {
      methodCall1('');
      methodCall2('');
      methodCall3('');
      methodCall4('');
      methodCall5('');
    }
    when 2 { /* ... */ }
  }
}
----

== Compliant Solution

----
public void foo(Integer value) {
  switch on value {
    when 1 { doSomething(); }
    when 2 { /* ... */ }
    }
  }
}

private void doSomething() {
  methodCall1('');
  methodCall2('');
  methodCall3('');
  methodCall4('');
  methodCall5('');
}
----

ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)

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