The Java switch statement executes one statement from multiple conditions. It is like if-else-if ladder statement. The switch statement works with byte, short, int, long, enum types, String and some wrapper types like Byte, Short, Int, and Long. Since Java 7, you can use strings in the switch statement.
In other words, the switch statement tests the equality of a variable against multiple values.
switch(expression){ case value1: //code to be executed; break; //optional case value2: //code to be executed; break; //optional ...... default: code to be executed if all cases are not matched; }
public class SwitchExample { public static void main(String[] args) { //Declaring a variable for switch expression int number=20; //Switch expression switch(number){ //Case statements case 10: System.out.println("10"); break; case 20: System.out.println("20"); break; case 30: System.out.println("30"); break; //Default case statement default:System.out.println("Not in 10, 20 or 30"); } } }
//Java Program to demonstrate the example of Switch statement //where we are printing month name for the given number public class SwitchMonthExample { public static void main(String[] args) { //Specifying month number int month=7; String monthString=""; //Switch statement switch(month){ //case statements within the switch block case 1: monthString="1 - January"; break; case 2: monthString="2 - February"; break; case 3: monthString="3 - March"; break; case 4: monthString="4 - April"; break; case 5: monthString="5 - May"; break; case 6: monthString="6 - June"; break; case 7: monthString="7 - July"; break; case 8: monthString="8 - August"; break; case 9: monthString="9 - September"; break; case 10: monthString="10 - October"; break; case 11: monthString="11 - November"; break; case 12: monthString="12 - December"; break; default:System.out.println("Invalid Month!"); } //Printing month of the given number System.out.println(monthString); } }
If the character is A, E, I, O, or U, it is vowel otherwise consonant. It is not case-sensitive.
public class SwitchVowelExample { public static void main(String[] args) { char ch='O'; switch(ch) { case 'a': System.out.println("Vowel"); break; case 'e': System.out.println("Vowel"); break; case 'i': System.out.println("Vowel"); break; case 'o': System.out.println("Vowel"); break; case 'u': System.out.println("Vowel"); break; case 'A': System.out.println("Vowel"); break; case 'E': System.out.println("Vowel"); break; case 'I': System.out.println("Vowel"); break; case 'O': System.out.println("Vowel"); break; case 'U': System.out.println("Vowel"); break; default: System.out.println("Consonant"); } } }
The Java switch statement is fall-through. It means it executes all statements after the first match if a break statement is not present.
//Java Switch Example where we are omitting the //break statement public class SwitchExample2 { public static void main(String[] args) { int number=20; //switch expression with int value switch(number){ //switch cases without break statements case 10: System.out.println("10"); case 20: System.out.println("20"); case 30: System.out.println("30"); default:System.out.println("Not in 10, 20 or 30"); } } }
Java allows us to use strings in switch expression since Java SE 7. The case statement should be string literal.
//Java Program to demonstrate the use of Java Switch //statement with String public class SwitchStringExample { public static void main(String[] args) { //Declaring String variable String levelString="Expert"; int level=0; //Using String in Switch expression switch(levelString){ //Using String Literal in Switch case case "Beginner": level=1; break; case "Intermediate": level=2; break; case "Expert": level=3; break; default: level=0; break; } System.out.println("Your Level is: "+level); } }
We can use switch statement inside other switch statement in Java. It is known as nested switch statement.
//Java Program to demonstrate the use of Java Nested Switch public class NestedSwitchExample { public static void main(String args[]) { //C - CSE, E - ECE, M - Mechanical char branch = 'C'; int collegeYear = 4; switch( collegeYear ) { case 1: System.out.println("English, Maths, Science"); break; case 2: switch( branch ) { case 'C': System.out.println("Operating System, Java, Data Structure"); break; case 'E': System.out.println("Micro processors, Logic switching theory"); break; case 'M': System.out.println("Drawing, Manufacturing Machines"); break; } break; case 3: switch( branch ) { case 'C': System.out.println("Computer Organization, MultiMedia"); break; case 'E': System.out.println("Fundamentals of Logic Design, Microelectronics"); break; case 'M': System.out.println("Internal Combustion Engines, Mechanical Vibration"); break; } break; case 4: switch( branch ) { case 'C': System.out.println("Data Communication and Networks, MultiMedia"); break; case 'E': System.out.println("Embedded System, Image Processing"); break; case 'M': System.out.println("Production Technology, Thermal Engineering"); break; } break; } } }
Java allows us to use enum in switch statement.
//Java Program to demonstrate the use of Enum //in switch statement public class JavaSwitchEnumExample { public enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat } public static void main(String args[]) { Day[] DayNow = Day.values(); for (Day Now : DayNow) { switch (Now) { case Sun: System.out.println("Sunday"); break; case Mon: System.out.println("Monday"); break; case Tue: System.out.println("Tuesday"); break; case Wed: System.out.println("Wednesday"); break; case Thu: System.out.println("Thursday"); break; case Fri: System.out.println("Friday"); break; case Sat: System.out.println("Saturday"); break; } } } }
Java allows us to use four wrapper classes: Byte, Short, Integer and Long in switch statement.
//Java Program to demonstrate the use of Wrapper class //in switch statement public class WrapperInSwitchCaseExample { public static void main(String args[]) { Integer age = 18; switch (age) { case (16): System.out.println("You are under 18."); break; case (18): System.out.println("You are eligible for vote."); break; case (65): System.out.println("You are senior citizen."); break; default: System.out.println("Please give the valid age."); break; } } }