Using two values for one switch case statement

前端 未结 12 1780
梦谈多话
梦谈多话 2020-11-28 17:56

In my code, the program does something depending on the text entered by the user. My code looks like:

switch (name) {
        case text1: {
            //bla         


        
12条回答
  •  夕颜
    夕颜 (楼主)
    2020-11-28 18:43

    With the integration of JEP 325: Switch Expressions (Preview) in JDK-12 early access builds, one can now make use of the new form of the switch label as :-

    case text1, text4 -> {
         //blah
    } 
    

    or to rephrase the demo from one of the answers, something like :-

    public class RephraseDemo {
    
        public static void main(String[] args) {
            int month = 9;
            int year = 2018;
            int numDays = 0;
    
            switch (month) {
                case 1, 3, 5, 7, 8, 10, 12 ->{
                    numDays = 31;
                }
                case 4, 6, 9, 11 ->{
                    numDays = 30;
                }
                case 2 ->{
                    if (((year % 4 == 0) &&
                            !(year % 100 == 0))
                            || (year % 400 == 0))
                        numDays = 29;
                    else
                        numDays = 28;
                }
                default ->{
                    System.out.println("Invalid month.");
    
                }
            }
            System.out.println("Number of Days = " + numDays);
        }
    }
    

    Here is how you can give it a try - Compile a JDK12 preview feature with Maven

提交回复
热议问题