Skip to main content

Command Palette

Search for a command to run...

Modern Switch in Java

Published
3 min readView as Markdown
Modern Switch in Java
R

I am Aspiring full stack java Developer .

  • From JDK 12 Java introduced a new version of switch called as Modern switch or Switch Expression

  • It was introduced as preview feature in JDK 12 and later on finalized in JDK 14

  • The modern switch enhances the traditional switch by making it more concise and expressive

Key Features

  • Arrow Syntax : Simplifies case statements by replacing with

  • No Fall Through: No need to write break – The arrow syntax prevents accidental fall through between cases.

  • Switch as an Expression : We can now use switch as an expression to directly return a value

  • yield for returning values : The yield keyword is used in switch expressions for returning values

Traditional Switch

public class Demo
 {
     public static void main (String[] args )
       int day = 2;
    switch (day)
   {
       case 1 :
      System.out.println("Monday");
       break;
      case 2 :
      System.out.println("Tuesday");
       break;
      default :
     System.out.println ("Invalid Day");
    }
}

Modern Switch

public class Demo {
    public static void main(String[] args) {

        int day = 2;

        switch (day) {
            case 1 -> System.out.println("Monday");
            case 2 -> System.out.println("Tuesday");
            case 3 -> System.out.println("Wednesday");
            default -> System.out.println("Invalid day");
        }
    }
}

Traditional Switch

public class Demo {
    public static void main(String[] args) {

        int day = 2;

        switch (day) {
            case 1:
                System.out.println("Monday");
                System.out.println("Week Started");
                break;

            case 2:
                System.out.println("Tuesday");
                System.out.println("Week Started");
                break;

            case 3:
                System.out.println("Wednesday");
                System.out.println("Mid week");
                break;

            default:
                System.out.println("Invalid day");
        }
    }
}

Modern Switch

public class Demo {
    public static void main(String[] args) {

        int day = 2;

        switch (day) {

            case 1 -> {
                System.out.println("Monday");
                System.out.println("Week Started");
            }

            case 2 -> {
                System.out.println("Tuesday");
                System.out.println("Week Started");
            }

            case 3 -> {
                System.out.println("Wednesday");
                System.out.println("Mid week");
            }

            default -> System.out.println("Invalid day");
        }
    }
}

Traditional Switch

public class Demo {
    public static void main(String[] args) {

        int day = 2;

        switch (day) {

            case 1:
            case 2:
                System.out.println("Week started");
                break;

            case 3:
            case 4:
                System.out.println("Mid week");
                break;

            case 5:
            case 6:
            case 7:
                System.out.println("Weekend");
                break;

            default:
                System.out.println("Invalid day");
        }
    }
}

Modern Switch

public class Demo {
    public static void main(String[] args) {

        int day = 2;

        switch (day) {

            case 1, 2 -> System.out.println("Week started");

            case 3, 4 -> System.out.println("Mid week");

            case 5, 6, 7 -> System.out.println("Weekend");

            default -> System.out.println("Invalid day");
        }
    }
}

Modern Switch

public class Demo {
    public static void main(String[] args) {

        int monthNumber = 5;
        String season;

        season = switch (monthNumber) {

            case 11, 12, 1, 2 -> {
                System.out.println("Too cold");
                yield "Winter";
            }

            case 3, 4, 5, 6 -> {
                System.out.println("Too hot");
                yield "Summer";
            }

            case 7, 8, 9, 10 -> {
                System.out.println("I love this season");
                yield "Rainy";
            }

            default -> "Wrong month";
        };

        System.out.println(season);
    }
}