Java How to Prevent Switch Case From Continuing

SwitchDemo

month
whose value supposedly represents the month in a date. The program displays the name of the month, based on the value of month
, using the switch
statement: Thepublic class SwitchDemo { public static void main(String[] args) { int month = 8; switch (month) { case 1: System.out.println("January"); break; case 2: System.out.println("February"); break; case 3: System.out.println("March"); break; case 4: System.out.println("April"); break; case 5: System.out.println("May"); break; case 6: System.out.println("June"); break; case 7: System.out.println("July"); break; case 8: System.out.println("August"); break; case 9: System.out.println("September"); break; case 10: System.out.println("October"); break; case 11: System.out.println("November"); break; case 12: System.out.println("December"); break; default: System.out.println("Not a month!"); break; } } }
switch
statement evaluates its expression, in this case the value of month
, and executes the appropriate case 
August
. Of course, you could implement this by using an if
statement: Deciding whether to use anint month = 8; if (month == 1) { System.out.println("January"); } else if (month == 2) { System.out.println("February"); } . . . //and so on
if
statement or a switch
statement is a judgment call. You can decide which to use, based on readability and other factors. An if
statement can be used to make decisions based on ranges of values or conditions, whereas a switch
statement can make decisions based only on a single integer or enumerated value. Also, the value provided to each case
statement must be unique. Another point of interest in the switch
statement is the break statement after each
case
. Each break
statement terminates the enclosing switch
statement, and the flow of control continues with the first statement following the switch
block. The break
statements are necessary because without them, the case
statements fall through. That is, without an explicit break
, control will flow sequentially through subsequent case
statements. Following is an example, SwitchDemo2
, that illustrates why it might be useful to have
case
statements fall through:
The output from this program is:public class SwitchDemo2 { public static void main(String[] args) { int month = 2; int year = 2000; int numDays = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11: numDays = 30; break; case 2: if ( ((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0) ) numDays = 29; else numDays = 28; break; default: numDays = 0; break; } System.out.println("Number of Days = " + numDays); } }
Technically, the finalNumber of Days = 29
break
is not required, because flow would fall out of the switch
statement anyway. However, we recommend using a break
so that modifying the code is easier and less error-prone. You will see break
used to terminate loops in the section Branching Statements
Finally, you should use the default statement at the end of the
switch
to handle all values that aren't explicitly handled by one of the case
statements.
switch
statements. You'll learn all about enumerated types later, in the Classes and Inheritance
switch
statement. Fortunately, it's just like using integers in a switch
statement. The following code, taken from SwitchEnumDemo
is almost identical to the code you previously saw from
SwitchDemo2
. It substitutes enumerated values for the integers, but otherwise the
switch
statement is the same.
public class SwitchEnumDemo { public enum Month { JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER } public static void main(String[] args) { Month month = Month.FEBRUARY; int year = 2000; int numDays = 0; switch (month) { case JANUARY: case MARCH: case MAY: case JULY: case AUGUST: case OCTOBER: case DECEMBER: numDays = 31; break; case APRIL: case JUNE: case SEPTEMBER: case NOVEMBER: numDays = 30; break; case FEBRUARY: if ( ((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0) ) numDays = 29; else numDays = 28; break; default: numDays=0; break; } System.out.println("Number of Days = " + numDays); } }
This example showed just a bit of what Java language enumerations can do. To learn more, see Enumerated Types
grantjurnerridich.blogspot.com
Source: https://www.iitk.ac.in/esc101/05Aug/tutorial/java/nutsandbolts/switch.html
0 Response to "Java How to Prevent Switch Case From Continuing"
Post a Comment