Помогите со Switch

swift
ios

#1

Добрый день .Подскажите как решить задачку
по определению кол-ва гласных , согласных и знаков в строке(предложении ).Нужно решить в цикле с использованием Switch . Циклом решила (ниже пример) var sentence = "Some text "

let vowels = “aeiou”

let consonants = “bcdfghiklmpgrstvwxyz”

let signsOfSticking = “,.:-!”

var vowelsSum = 0

var consonantsSum = 0

var signsOfStickingSum = 0

for letter in sentence {

if vowels.contains (letter) {

vowelsSum += 1

} else if consonants.contains (letter) {

consonantsSum += 1

} else if signsOfSticking.contains (letter){

signsOfStickingSum += 1

}

}

print(vowelsSum)

print(consonantsSum)

print(signsOfStickingSum)


#2
func calc(sentence: String) {

    var vowelsSum = 0
    var consonantsSum = 0
    var signsOfStickingSum = 0
    
    for letter in sentence {
        switch letter {
        case "a", "e": // <- aeiou
            vowelsSum += 1
        case "b", "c": // <- bcdfghiklmpgrstvwxyz
            consonantsSum += 1
        case ",", ".": // <- ,.:-!
            signsOfStickingSum += 1
        default:
            continue
        }
    }
}

#3

Можно оставить коллекцию символов (сделать её множеством, например) и тогда switch будет:

for letter in str {
    switch letter {
    case letter where vowels.contains(letter.lowercased()):
        vowelsSum += 1
    case letter where consonants.contains(letter.lowercased()):
        consonantsSum += 1
    .....
    default:
        continue
    }
}

#4

Большое Вам спасибо )