66 lines
962 B
Plaintext
66 lines
962 B
Plaintext
include::../description.adoc[]
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
switch (param) { //missing default clause
|
|
case 0:
|
|
doSomething();
|
|
break;
|
|
case 1:
|
|
doSomethingElse();
|
|
break;
|
|
}
|
|
|
|
switch (param) {
|
|
default: // default clause should be the last one
|
|
error();
|
|
break;
|
|
case 0:
|
|
doSomething();
|
|
break;
|
|
case 1:
|
|
doSomethingElse();
|
|
break;
|
|
}
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
switch (param) {
|
|
case 0:
|
|
doSomething();
|
|
break;
|
|
case 1:
|
|
doSomethingElse();
|
|
break;
|
|
default:
|
|
error();
|
|
break;
|
|
}
|
|
----
|
|
|
|
== Exceptions
|
|
|
|
If the <code>switch</code> parameter is an <code>Enum</code> and if all the constants of this enum are used in the <code>case</code> statements, then no <code>default</code> clause is expected.
|
|
|
|
Example:
|
|
|
|
----
|
|
public enum Day {
|
|
SUNDAY, MONDAY
|
|
}
|
|
...
|
|
switch(day) {
|
|
case SUNDAY:
|
|
doSomething();
|
|
break;
|
|
case MONDAY:
|
|
doSomethingElse();
|
|
break;
|
|
}
|
|
----
|
|
|
|
include::../see.adoc[]
|