控制流 / 条件语句 / switch/case 语句

class Tiger {}

String describe(Object obj) {
    return switch(obj) {
        //Java 17 Feature
        case Tiger t -> "Tiger!!!";
        case Integer i -> "Int type";
        case String s -> String.format("string value '%s'", s);
        case null -> "Empty value";
        default -> "Unknown type";  
    };
}

var result = describe(new Tiger());
System.out.println(result);

result = describe("test");
System.out.println(result);

result = describe(5);
System.out.println(result);

var e = "3*3";
switch (e) {
    //Java 14 Feature
    case "3 + 3" -> System.out.printf("result = 6");
    case "3 - 3" -> System.out.printf("result = 0");
    case "3*3" -> System.out.printf("result = 9");
    case "3/3" -> System.out.printf("result = 1");              
    default -> System.out.printf("unknown");
}