Поток управления / Условные операторы / Операторы switch/case

record Tiger(int age) {}
record Point(int x, int y) {}

String describe(Object obj) {
    //Java 19 Feature
    return switch (obj) {
        case Integer i when i > 1000000 -> "Big number";
        case String s when s.length()< 256 -> "Short string";
        case Tiger t when t.age() > 12 -> "Old tiger";
        case Point(var x, var y) when x == y  -> "Point x == y";
        default -> "Unknown type";
    };
}

var result = describe(new Tiger(15));
System.out.printf(result);
//printed: Old tiger