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: public 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; } } } The 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: int month = 8; if (month == 1) { System.out.println("January"); } else if (month == 2) { System.out.println("February"); } . . . //and so on Deciding whether to use an 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:
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); } } The output from this program is: 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 Inheritanceswitch 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