$show=/label

Java Switch Expressions Examples (+Java 13, 12 Vs All Java Older Versions Switch Programs)

SHARE:

A quick guide to the new Java 13 Switch Expression and its example programs.

1. Introduction


In to days article, We'll learn what is new Java 13 switch expression with example programs. In Java 13, the JEP 354: Switch Expressions extends the previous Java 12 Switch Expressions by adding a new yield keyword to return a value from switch expression. This makes the code so clear and more readable now.

This feature is part of preview features and disabled by default. This needs to be enabled for usage.

Java Switch Expressions Examples (+Java 13, 12 Vs All Java Older Versions Switch Programs)




2. Traditional Switch


This is the basic switch statement that will work in all java versions.

Java switch statement examples

private static int getValueBefore12(String mode) {
    int output;
    
    switch (mode) {
        case "A":
        case "B":
            output = 1;
            break;
        case "C":
            output = 2;
            break;
        case "D":
        case "E":
        case "F":
            output = 3;
            break;
        default:
            output = -1;
    };
    
    return output;
}

3. No Value Breaks Example


Value breaks are replaced by Java 13 'yield' statements. But this is valid in JDK 12.

private static int getValueViaTraditionalBreak(String mode) {

    int output = switch (mode) {
        case "A":
        case "B":
            break 1;
        case "C":
            break 2;
        case "D":
        case "E":
        case "F":
            break 3;
        default:
            break -1;
    };
    
    return output;
}

This code no longer will be compiled in java 13 version because value breaks are removed.

4. Java 12 Comma Separated Labels Example


 private static int getValueFromJava12MultipleLabels(String mode) {
    int output;
    switch (mode) {
        case "A", "B":
            output = 1;
            break;
        case "C":
            output = 2;
            break;
        case "D", "E", "F":
            output = 3;
            break;
        default:
            output = -1;
    };
    
    return output;
}

5. Java 12 - Switch Expression Arrow Example


We can use an arrow symbol to return a value via label rules (arrow) and also works with multiple rules. Let us take a look at the below example.


private static int getValueViaArrowJava12(String mode) {
    int output = switch (mode) {
        case "A", "B" -> 1;
        case "C" -> 2;
        case "D", "E", "F" -> 3;
        default -> -1;
    };
    return output;
}

6. Java 13 - yield in Switch Example


JDK 13 introduced a new way to declare a value to be returned with "yield" keyword.

Java 13 yield example:


 private static int getValueViaYieldInJava13(String mode) {
     int output = switch (mode) {
         case "a", "b":
             yield 1;
         case "c":
             yield 2;
         case "d", "e", "f":
             yield 3;
         default:
             yield -1;
     };
     
     return output;
 }

7. Enabling Java 13 Preview Features


If you run the Java 13 yield example program directly then you will get the following compile-time errors.

D:\test>javac Java13SwitchExample.java
Java13SwitchExample.java:39: error: multiple case labels are a preview feature and are disabled by default.
            case "a", "b":
                      ^
  (use --enable-preview to enable multiple case labels)
Java13SwitchExample.java:76: error: switch expressions are a preview feature and are disabled by default.
        int result = switch (mode) {
                     ^
  (use --enable-preview to enable switch expressions)
Java13SwitchExample.java:77: error: switch rules are a preview feature and are disabled by default.
            case "a", "b" -> 1;
                          ^
  (use --enable-preview to enable switch rules)

We need to explicitly enable the preview feature using the following commands.

javac --enable-preview --release 13 Java13SwitchExample.java
java --enable-preview Java13SwitchExample


8. Conclusion


In this article, We've learned what are the various versions of Switch statement or expression as part of the JDK 12, JDK 13 and older versions.

COMMENTS

BLOGGER

About Us

Author: Venkatesh - I love to learn and share the technical stuff.
Name

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,16,Arrays,7,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,5,Collections,22,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,81,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,4,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,3,Fast,1,Files,9,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,29,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,Java 8,66,Java 8 Difference,2,Java 8 Stream Conversions,2,java 8 Stream Examples,3,Java 9,1,Java Conversions,11,Java Design Patterns,1,Java Files,1,Java Program,2,Java Programs,65,java.lang,5,java.util. function,1,jQuery,1,Kotlin,10,Kotlin Conversions,3,Kotlin Programs,6,Lambda,1,lang,29,Leap Year,1,live updates,1,Logging,1,Mac OS,2,Math,1,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,1,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,21,String,58,String Programs,9,String Revese,1,Swing,1,System,1,Tags,1,Threads,10,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,2,Updates,3,util,5,While Loop,1,
ltr
item
JavaProgramTo.com: Java Switch Expressions Examples (+Java 13, 12 Vs All Java Older Versions Switch Programs)
Java Switch Expressions Examples (+Java 13, 12 Vs All Java Older Versions Switch Programs)
A quick guide to the new Java 13 Switch Expression and its example programs.
https://1.bp.blogspot.com/-ACTPGU71l8A/Xm_EphBliQI/AAAAAAAACVQ/L1xyEne8exUM5sOYqo1lPtE3tYSZOSl1gCLcBGAsYHQ/s640/Java%2BSwitch%2BExpressions%2BExamples%2B%2528%252BJava%2B13%252C%2B12%2BVs%2BAll%2BJava%2BOlder%2BVersions%2BSwitch%2BPrograms%2529.png
https://1.bp.blogspot.com/-ACTPGU71l8A/Xm_EphBliQI/AAAAAAAACVQ/L1xyEne8exUM5sOYqo1lPtE3tYSZOSl1gCLcBGAsYHQ/s72-c/Java%2BSwitch%2BExpressions%2BExamples%2B%2528%252BJava%2B13%252C%2B12%2BVs%2BAll%2BJava%2BOlder%2BVersions%2BSwitch%2BPrograms%2529.png
JavaProgramTo.com
https://www.javaprogramto.com/2020/03/java-switch.html
https://www.javaprogramto.com/
https://www.javaprogramto.com/
https://www.javaprogramto.com/2020/03/java-switch.html
true
3124782013468838591
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content