...
Code Block | ||
---|---|---|
| ||
int card = 11; switch (card) { /* ... */ case 11: System.out.println("Jack"); break; case 12: System.out.println("Queen"); break; case 13: System.out.println("King"); break; default: System.out.println("Invalid Card"); break; } |
Exceptions
Wiki Markup |
---|
*MSC14MSC09-EX1*: The {{break}} statement at the end of the final case in a {{switch}} statement may be omitted. By convention, this is the {{default}} label. The {{break}} statement serves to transfer control to the end of the {{switch}} block. Fall-through behavior also causes control to arrive at the end of the {{switch}} block. Consequently, control transfers to the statements following the {{switch}} block without regard to the presence or absence of the {{break}} statement. Nevertheless, the final case in a {{switch}} statement should end with a {{break}} statement, in accordance with good programming style (see \[[Rogue 2000|AA. Bibliography#Rogue 00]\]). |
MSC14MSC09-EX2: When multiple cases require execution of identical code, then break
statements may be omitted from all cases except the last one. For example:
Code Block | ||
---|---|---|
| ||
int card = 11; int value; // Cases 11,12,13 fall through to the same case switch (card) { // MSC13-J:EX2: these three cases are treated identically case 11: // break not required case 12: // break not required case 13: value = 10; break; // break required default: // Handle Error Condition } |
MSC14MSC09-EX3: When a case ends with a return
or throw
statement, the break
statement may be omitted.
...
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
MSC14 MSC09-J | medium | unlikely | low | P6 | L2 |
Other Languages
...
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="9903435f067b9dfd-2cd2128c-46fa4da8-aadd965b-6c1de72a598c10bfef04ad11"><ac:plain-text-body><![CDATA[ | [[JLS 2005 | AA. Bibliography#JLS 05]] | [Section 14.11 The switch Statement | http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.11] | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="91fa7f80962d578b-5223b359-4cf1414c-95cd923d-ae488b42b3d2b0f1f7c88f14"><ac:plain-text-body><![CDATA[ | [[Rogue 2000 | AA. Bibliography#Rogue 00]] | [The Elements of Java Style | http://www.ambysoft.com/books/elementsJavaStyle.html], Rule 78. | ]]></ac:plain-text-body></ac:structured-macro> |
...