Можешь объяснить ключевые различия между `switch` statement в Swift и традиционным `switch` statement в C, включая то, как Swift обрабатывает завершение case'ов и pattern matching? — ДейлиПреп