제어문 전환 명령어란?
제어문 전환 명령어는 프로그래밍에서 코드의 흐름을 변경하거나 특정 조건에서 빠져나갈 수 있게 해주는 명령어다
코드의 흐름을 제어하여 프로그램이 원하는 대로 동작하도록 하는 데 유용하게 사용된다
스위프트에서 주요 제어문 전환 명령어는 break, continue, return, fallthrough, throw가 있다
break | 반복문이나 switch 문을 즉시 종료한다 |
continue | 현재 반복 주기를 건너뛰고 다음 반복으로 넘어간다 |
return | 함수를 종료하고 값을 반환한다 |
fallthrough | switch문에서 다음 case 블록으로 넘어간다 |
throw | 오류를 던져 예외 처리를 수행한다 |
01. break
break는 반복문이나 switch 문을 즉시 종료한다
이 코드는 1부터 4까지 출력하고, i가 5일 때 반복문을 종료한다
for i in 1...10 {
if i == 5 {
break // i가 5일 때 반복문을 종료합니다.
}
print(i)
}
02. continue
continue는 현재 반복 주기를 건너뛰고 다음 반복으로 넘어간다
이 코드는 홀수만 출력하며 짝수일 때는 continue가 실행되어 다음 반복으로 넘어간다
for i in 1...10 {
if i % 2 == 0 {
continue // i가 짝수일 때 다음 반복으로 넘어갑니다.
}
print(i)
}
03. return
return은 함수를 즉시 종료하고 호출한 곳으로 값을 반환한다 (반환 값이 없을 수도 있음)
이 함수는 name이 nil일 때 "Name is missing."을 출력하고 함수를 종료한다
func greet(name: String?) {
guard let name = name else {
print("Name is missing.")
return // name이 nil일 때 함수를 종료합니다.
}
print("Hello, \(name)!")
}
greet(name: "John") // "Hello, John!"
greet(name: nil) // "Name is missing."
04. fallthrough
switch문에서 다음 case 블록으로 넘어가게 한다
스위프트에서 많이 사용되지 않지만, 특정 상황에서 유용할 수 있다
이 코드는 "Two"와 "Three"를 출력하며 fallthrough 때문에 case 3도 실행된다
let number = 2
switch number {
case 1:
print("One")
case 2:
print("Two")
fallthrough // 다음 case 블록으로 넘어갑니다.
case 3:
print("Three")
default:
print("Default")
}
05. throw
throw는 오류를 던져서 예외 처리를 수행하게 하며, throws가 선언된 함수 내에서 사용된다
이 예제는 비밀번호가 짧거나 단순할 때 오류를 던지고, 그 오류를 do-catch 구문으로 처리한다
enum PasswordError: Error {
case tooShort
case tooSimple
}
func validatePassword(_ password: String) throws {
if password.count < 8 {
throw PasswordError.tooShort // 비밀번호가 너무 짧을 때 오류를 던집니다.
}
if password == "12345678" {
throw PasswordError.tooSimple // 비밀번호가 너무 단순할 때 오류를 던집니다.
}
}
do {
try validatePassword("1234")
} catch PasswordError.tooShort {
print("Password is too short.")
} catch PasswordError.tooSimple {
print("Password is too simple.")
} catch {
print("Unknown error.")
}
'🍎 Swift > iOS 문법 노트' 카테고리의 다른 글
[🍎 Swift 문법] 고차함수 Map, Filter, Reduce (0) | 2024.07.24 |
---|---|
[🍎 Swift 문법] sort 와 sorted (0) | 2024.07.09 |
[🍎 Swift 문법] if let & guard let (0) | 2024.06.27 |
[🍎 Swift 문법] 타입 캐스팅 (0) | 2024.06.25 |
[🍎 Swift 문법] 프로퍼티 옵저버 (0) | 2024.06.11 |