74 lines
1.1 KiB
Plaintext
74 lines
1.1 KiB
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 ``++switch++`` parameter is an ``++Enum++`` and if all the constants of this enum are used in the ``++case++`` statements, then no ``++default++`` clause is expected.
|
|
|
|
|
|
Example:
|
|
|
|
----
|
|
public enum Day {
|
|
SUNDAY, MONDAY
|
|
}
|
|
...
|
|
switch(day) {
|
|
case SUNDAY:
|
|
doSomething();
|
|
break;
|
|
case MONDAY:
|
|
doSomethingElse();
|
|
break;
|
|
}
|
|
----
|
|
|
|
include::../see.adoc[]
|
|
|
|
ifdef::rspecator-view[]
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::rspecator-view[]
|