The switch
statement should be used only to clearly define some new branches in the control flow. As soon as a case
clause contains too many statements this highly decreases the readability of the overall control flow statement. In such case, the content of the
case
clause should be extracted into a dedicated method.
Noncompliant code example
With the default threshold of 5:
switch (myVariable) {
case 0: // Noncompliant: 6 lines till next case
methodCall1("");
methodCall2("");
methodCall3("");
methodCall4("");
break;
case 1:
...
}
Compliant solution
switch (myVariable) {
case 0:
doSomething()
break;
case 1:
...
}
...
private void doSomething(){
methodCall1("");
methodCall2("");
methodCall3("");
methodCall4("");
}