Switch Case in Java programming


  • The control statement that allows us to make a decision from the number of choices is called a switch, or more correctly a switch-case-default.

  • The Switch executes the case where a match is found and then all subsequent cases till end, so stop that fall through we use break; statement in each case.

  • A switch works with the byte, short, char, and int primitive data types.

  • It also works with enumerated types , the String class, and a few special classes that wrap certain primitive types: Character, Byte, Short, and Integer.

Syntax :

switch(expression){
   case value1  :
      statement(s);
      break; //optional
   case value2  :
      statement(s);
      break; //optional
    .....
/* you can have any number of case statements. */
   default : //Optional
      statement(s);
  /* code to be executed if all cases are not matched */
}               
                                    

Block Diagram :

prowessapps.com

Example:

Java Program to give choice to user from menu to perform action.
Test.java Copy Code
import java.util.Scanner;

class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x;
        System.out.println("MENU\n----------");
        System.out.println("1. for Hello");
        System.out.println("2. for Bye");
        System.out.println("-----------");
        System.out.print("Enter Your Choice: ");
        x = sc.nextInt();
        switch (x) {
            case 1:
                System.out.println("HELLO USER!!");
                break;
            case 2:
                System.out.println("BYE USER!!");
                break;
            default:
                System.out.println("INVALID!!");
        }
    }
}
OUTPUT 1:

MENU
-----------
1. for Hello
2. for Bye
-----------
Enter Your Choice: 1
HELLO USER!!
                                

Using Strings in switch :

From Java SE 7 , you can use a String object in the switch statement's expression. The following code example, StringSwitchDemo, displays the number of the month based on the value of the String named month:

StringSwitchDemo.java Copy Code
public class StringSwitchDemo {

    public static void main(String[] args) {
        String month = "august";
        switch (month) {
            case "january":
                System.out.print("1st Month");
                break;
            case "february":
                System.out.print("2nd Month");
                break;
            case "march":
                System.out.print("3rd Month");
                break;
            case "april":
                System.out.print("4th Month");
                break;
            case "may":
                System.out.print("5th Month");
                break;
            case "june":
                System.out.print("6th Month");
                break;
            case "july":
                System.out.print("7th Month");
                break;
            case "august":
                System.out.print("8th Month");
                break;
            case "september":
                System.out.print("9th Month");
                break;
            case "october":
                System.out.print("10th Month");
                break;
            case "november":
                System.out.print("11th Month");
                break;
            case "december":
                System.out.print("12th Month");
                break;
            default:
                System.out.print("wrong Month");
                break;
        }//switch closed
    }//main closed
}//class closed
OUTPUT :
 8th Month   
            

Java Nested Switch Statement

A nested switch statement is a switch statement that appears inside another switch statement's case block. It allows for more complex decision-making scenarios by evaluating multiple levels of conditions.

Example :

NestedSwitchExample.java Copy Code
public class NestedSwitchExample {
    public static void main(String[] args) {
        int category = 2;
        int item = 1;

        switch (category) {
            case 1:
                switch (item) {
                    case 1:
                        System.out.println("Category: 1, Item: 1");
                        break;
                    case 2:
                        System.out.println("Category: 1, Item: 2");
                        break;
                    default:
                        System.out.println("Invalid Item for Category 1");
                        break;
                }
                break;
            case 2:
                switch (item) {
                    case 1:
                        System.out.println("Category: 2, Item: 1");
                        break;
                    case 2:
                        System.out.println("Category: 2, Item: 2");
                        break;
                    default:
                        System.out.println("Invalid Item for Category 2");
                        break;
                }
                break;
            default:
                System.out.println("Invalid Category");
                break;
        }
    }
}



πŸš€ Quick Knowledge Check

Topic: Introduction | Language: Java

Q1. Which edition of Java is specifically designed for large-scale web and enterprise applications?
Q2. Which of the following is NOT a feature of Java ?
Q3. Who developed Java, and in which year did its development begin?
Q4. Before being officially called Java, which of the following was NOT an early name of the language?
Q5. Which feature of Java is described by the phrase 'Write Once, Run Anywhere' (WORA)?