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

let firstNumber = 1
var numbers = ""
switch firstNumber {
    case 1:
        numbers = "1"
        fallthrough 
    case 2:
        numbers += "-2"
        fallthrough
    case 3:
        numbers += "-3"
        fallthrough
    default:
        numbers += ";"
}
//numberList is "1-2-3;"

print("numbers is '\(numbers)'")


В Swift операторы switch не попадают из конца каждого блока case в следующий. То есть весь оператор switch завершает свое выполнение, как только завершается первый подходящий вариант. Напротив, C требует, чтобы вы вставляли явный оператор break в конце каждого варианта, чтобы предотвратить переход к следующему. Избежание провала по умолчанию означает, что операторы переключения Swift гораздо более кратки и предсказуемы, чем их аналоги в C, и, таким образом, они позволяют избежать ошибочного выполнения нескольких случаев переключения.

Если вам нужно поведение в стиле C, вы можете указать его в каждом конкретном блоке case с помощью ключевого слова fallthrough.