The switch Statement example in Java
By: Kamini Printer Friendly Format
Unlike if-then and if-then-else, the switch statement allows for any number of possible execution paths. A switch works with the byte, short, char, and int primitive data types. It also works with enumerated types and a few special classes that "wrap" certain primitive types: Character, Byte, Short, and Integer.
The following program, SwitchDemo, declares an int named month whose value represents a month out of the year. The program displays the name of the month, based on the value of month, using the switch statement.
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("Invalid month.");break;
}
}
}
In this case, "August" is printed to standard output.
The body of a switch statement is known as a switch block. Any statement immediately contained by the switch block may be labeled with one or more case or default labels. The switch statement evaluates its expression and executes the appropriate case.
Of course, you could also implement the same thing with if-then-else
statements:
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 if-then-else statements or a switch statement is sometimes a judgment call. You can decide which one to use based on readability and other factors. An if-then-else 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.
Another point of interest is the break statement after each case.
Each break statement terminates the enclosing switch
statement. Control flow continues with the first statement following the switch
block. The break statements are necessary because without them, case
statements fall through; that is, without an explicit break,
control will flow sequentially through subsequent case
statements. The following program, SwitchDemo2,
illustrates why it might be useful to have case statements fall
through:
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:
System.out.println("Invalid month.");
break;
}
System.out.println("Number of Days = " + numDays);
}
}
This is the output from the program.
Number of Days = 29
Technically, the final break is not required because flow would fall out of the switch statement anyway. However, we recommend using a break so that modifying the b is easier and less error-prone. The default section handles all values that aren't explicitly handled by one of the case sections.
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Subscribe to Tutorials
Related Tutorials
Program using concept of byte long short and int in java
Update contents of a file within a jar file
Tomcat and httpd configured in port 8080 and 80
Count number of vowels, consonants and digits in a String in Java
Student marks calculation program in Java
Calculate gross salary in Java
Calculate average sale of the week in Java
Vector in Java - Sample Program
MultiLevel Inheritance sample in Java
Archived Comments
1. why it is( ((year % 4 == 0) && !(year % 10
View Tutorial By: Jai Shankar K at 2012-04-08 10:15:56
2. @Jai Shankar K
I'm guessing you are
View Tutorial By: Nick Scroggs at 2013-03-26 01:44:04
3. import java.util.Scanner;
public class Swit
View Tutorial By: srinath at 2013-04-28 10:17:24
4. its a big help!..thankz
View Tutorial By: mezer at 2013-07-17 05:34:07
5. How would you use a switch statement to determine
View Tutorial By: Shivak at 2013-09-27 01:48:41
6. Write a program to input the number and use switch
View Tutorial By: abdulaziz at 2014-03-28 16:22:35
7. I need to get the brief notes on this example
View Tutorial By: Racchana Srini at 2014-07-29 07:50:22
8. find gud looking hasband and well educated
View Tutorial By: manpreet kaur at 2014-09-10 11:10:53
9. can for statement be used in a switch statement fo
View Tutorial By: Osei Quadwo at 2014-10-08 20:12:17
10. I want to using swith with string...
How to
View Tutorial By: anuj at 2015-03-04 18:22:29
11. nice
View Tutorial By: utkarsh at 2015-03-10 03:18:26
12. if ((year % 4 == 0) && (year % 400 == 0) )
View Tutorial By: nav at 2017-03-09 04:55:17