Switch expression отличается от обычного оператора switch тем, что первое позволяет возвращать результат работы. 1
Обычный оператор switch используется для управления потоком выполнения внутри блока кода. 4 Switch expression, в свою очередь, обычно применяется в контекстах возврата значений и их назначения, часто в качестве выражений с телом. 4
Некоторые другие отличия:
- Пустота блока case: в switch expression блок case не может быть пустым, в то время как в обычном операторе switch это возможно. 4
- Отсутствие оператора break: в switch expression не требуется ставить break, так как всегда выполняется только соответствующая ветка case, а её результат сразу возвращается в переменную. 2
- Использование ключевого слова yield: в switch expression оно помогает вернуть значение из switch, является аналогом return в методах. 12