Switch-Case Statements in Java


The switch-case statement is used to execute one out of many blocks of code based on a specific value. It is often used as an alternative to multiple if-else statements when you have many conditions to check.

Syntax of Switch-Case

The syntax for a switch-case statement is as follows:

    switch (expression) {
        case value1:
            // code to be executed if expression == value1
            break;
        case value2:
            // code to be executed if expression == value2
            break;
        default:
            // code to be executed if expression doesn't match any case
    }
        

Here, expression is the value that you want to check, and the case labels are the possible values. If a match is found, the corresponding block of code will execute. The break statement is used to exit the switch block after executing the matched case. The default case is optional and is executed if no case matches the expression.

Example 1: Basic Switch-Case

Let's see an example where we use a switch-case statement to print a message based on the day of the week.

    public class SwitchExample {
        public static void main(String[] args) {
            int day = 3; // 1=Monday, 2=Tuesday, etc.
    
            switch (day) {
                case 1:
                    System.out.println("Monday");
                    break;
                case 2:
                    System.out.println("Tuesday");
                    break;
                case 3:
                    System.out.println("Wednesday");
                    break;
                case 4:
                    System.out.println("Thursday");
                    break;
                case 5:
                    System.out.println("Friday");
                    break;
                case 6:
                    System.out.println("Saturday");
                    break;
                case 7:
                    System.out.println("Sunday");
                    break;
                default:
                    System.out.println("Invalid day");
            }
        }
    }
        

In this example, the value of the variable day is 3, so the program will print "Wednesday". If the value of day is not between 1 and 7, the default case will execute and print "Invalid day".

Example 2: Using a Switch-Case with Strings

Switch-case can also be used with String values in Java. Here's an example where we use a switch-case statement to print a message based on the name of a month.

    public class SwitchStringExample {
        public static void main(String[] args) {
            String month = "March";
    
            switch (month) {
                case "January":
                    System.out.println("Winter");
                    break;
                case "March":
                    System.out.println("Spring");
                    break;
                case "June":
                    System.out.println("Summer");
                    break;
                case "September":
                    System.out.println("Fall");
                    break;
                default:
                    System.out.println("Invalid month");
            }
        }
    }
        

In this example, the variable month is "March", so the program will print "Spring". If the value of month doesn't match any case, the default case will print "Invalid month".

Important Notes

  • The break statement is important. Without it, the program will continue executing the next cases even if a match has already been found (this is known as "fall-through").
  • If you omit the break statement, the program will execute the code for the matching case and then continue to execute all subsequent cases until a break is encountered or the switch block ends.
  • The default case is optional, but it's good practice to include it to handle unexpected values.

Conclusion

In Java, the switch-case statement is a great way to simplify multiple condition checks. It provides an efficient alternative to using multiple if-else statements, especially when comparing the same variable to different values. It can be used with primitive types, enums, and Strings.





Advertisement