墨小澄  

1、switch多重选择:根据某个表达式的结果,分别去执行不同的分支。

  格式:switch(表达式){

     case 结果1:

        执行语句1;

        break;

     case 结果2:

     case 结果3:

        执行语句2;

        break;

     ……

     case n:

        执行语句n;

        break;

     default:

        执行语句last;

        break;

     }

  

public class Main {
    public static void main(String[] args) {
       System.out.println("欢迎来到游戏世界");
    System.out.println("勇士,您想选择的游戏关卡是(1-4):");
    Scanner scanner=new Scanner(System.in);
    int res=scanner.nextInt();
    switch(res) {
    case 1:
        System.out.print("来到新手报到处,要好好的积累经验哦!");
        break;
    case 2:
        System.out.print("封釉山谷打怪记得捡装备呦");
        break;
    case 3:
        System.out.print("疃栾大地需要团队合作才能战胜");
        break;
        /*
          若2、3 结果相同,可以写为:
         case 2:
         case 3:
        System.out.print("疃栾大地需要团队合作才能战胜");
        break;  
        */        
    default:
        System.out.print("稀有怪等待勇士的搏斗");
        break;    
    }
    }
}

 

2、switch语句还可以匹配字符串,字符串匹配时,是比较“内容相等”:

 1 public class Main {
 2     public static void main(String[] args) {
 3         String fruit = "apple";
 4         switch (fruit) {
 5         case "apple":
 6             System.out.println("Selected apple");
 7             break;
 8         case "pear":
 9             System.out.println("Selected pear");
10             break;
11         case "mango":
12             System.out.println("Selected mango");
13             break;
14         default:
15             System.out.println("No fruit selected");
16             break;
17         }
18     }
19 }

switch语句还可以使用枚举类型,后面讲解。

3、JAVA新版

  * switch表达式,遗漏了break会造成严重的逻辑问题,且不易发现,java12开始,该语句升级为更简洁的表达式语法,使用类似模式匹配的方法,不需要break语句,使用->,若有多条语句需要用{}括起来。

 1 public class Main {
 2     public static void main(String[] args) {
 3         String fruit = "apple";
 4         switch (fruit) {
 5         case "apple" -> System.out.println("Selected apple");
 6         case "pear" -> System.out.println("Selected pear");
 7         case "mango" -> {
 8             System.out.println("Selected mango");
 9             System.out.println("Good choice!");
10         }
11         default -> System.out.println("No fruit selected");
12         }
13     }
14 }

  * yield: 用yield返回一个值作为switch语句的返回值

 1 public class Main {
 2     public static void main(String[] args) {
 3         String fruit = "orange";
 4         int opt = switch (fruit) {
 5             case "apple" -> 1;
 6             case "pear", "mango" -> 2;
 7             default -> {
 8                 int code = fruit.hashCode();
 9                 yield code; // switch语句返回值
10             }
11         };
12         System.out.println("opt = " + opt);
13     }
14 }

 

posted on 2020-04-06 16:07  墨小澄  阅读(301)  评论(0编辑  收藏  举报