Назовите 5 утверждений передачи управления (Control Transfer Statements) и опишите, как их использовать.
Этот вопрос проверяет знание операторов передачи управления, их синтаксиса и случаев применения.
Короткий ответ
Swift предоставляет пять операторов передачи управления: break, continue, fallthrough, throw и return. Они используются для изменения стандартного порядка выполнения программы. Например, break завершает цикл или условие, continue пропускает текущую итерацию цикла, fallthrough позволяет перейти к следующему случаю switch, throw генерирует ошибку, а return завершает выполнение функции и возвращает значение.
Длинный ответ
Операторы передачи управления позволяют изменять стандартный порядок выполнения программы. Рассмотрим каждый из них:
Break:
Прерывает выполнение цикла или завершает выполнение switch.
for number in 1...10 {
if number == 5 {
break // Цикл завершится на числе 5
}
print(number)
}
Continue:
Пропускает текущую итерацию цикла и переходит к следующей.
for number in 1...10 {
if number % 2 == 0 {
continue // Пропускаем чётные числа
}
print(number)
}
Fallthrough:
Используется в switch для перехода к следующему случаю, даже если условие уже выполнено.
let value = 2
switch value {
case 1:
print("One")
case 2:
print("Two")
fallthrough
case 3:
print("Three")
default:
print("Other")
}
Throw:
Генерирует ошибку, которую можно обработать с помощью do-catch.
enum CustomError: Error {
case invalidInput
}
func process(value: Int) throws {
if value < 0 {
throw CustomError.invalidInput
}
print("Valid input: \(value)")
}
do {
try process(value: -1)
} catch {
print("Error: \(error)")
}
Return:
Завершает выполнение функции и возвращает значение. Если функция ничего не возвращает, можно просто использовать return.
func greet(name: String?) -> String {
guard let name = name else {
return "Hello, Guest!"
}
return "Hello, \(name)!"
}
Операторы передачи управления обеспечивают гибкость выполнения кода. Их грамотное использование помогает улучшить читаемость и управление логикой программы.