| 제어 전송문 | 실행 |
|---|---|
return | 현재 실행 중인 함수에서 빠져나가고 값을 반환 |
break | 현재 실행 중인 반복문이나 switch 문을 즉시 종료 |
continue | 현재 반복문의 나머지 코드를 건너뛰고 다음 반복을 실행 |
fallthrouth | switch 문에서 다음 case 로 계속 실행 |
throw | 오류(Error)를 발생시켜 현재 코드의 실행을 중단 |
return - 함수나 루프에서 빠져나오기return 문은 현재 실행 중인 함수에서 즉시 빠져나가면서 값을 반환한다func add(a: Int, b: Int) -> Int {
return a + b // 함수 실행 종료 후 결과 반환
}
let result = add(a: 3, b: 5)
print(result) // 8
return a + b -> add 함수가 실행되면 return 을 만나고 값을 반환하면서 종료return (Void 함수)func sayHello() {
print("Hello, Swift!")
return // 생략 가능 (Void 함수에서는 `return`을 안 써도 자동 종료됨)
}
sayHello()
Void 함수에서는 return 을 명시적으로 쓰지 않아도 자동으로 함수가 종료된다return 을 사용하여 특정 조건에서 조기 종료func checkNumber(_ number: Int) {
if number < 0 {
print("음수는 처리하지 않습니다.")
return // 함수 즉시 종료
}
print("입력한 숫자는 \(number)입니다.")
}
checkNumber(-5) // 음수는 처리하지 않습니다.
checkNumber(10) // 입력한 숫자는 10입니다.
if number < 0 이면 return 이 실행되어 함수가 즉시 종료된다break - 루프 또는 switch 종료하기break 문은 현재 실행 중인 루프(for, while)나 switch 문을 즉시 종료할 때 사용한다break 를 사용하여 반복문 종료for i in 1...10 {
if i == 5 {
print("5를 만나서 반복문 종료!")
break
}
print(i)
}
// 실행 결과
1
2
3
4
5를 만나서 반복문 종료!
i == 5 이면 break 실행 -> 반복문이 즉시 종료된다break 를 사용하여 switch 문 종료let grade = "B"
switch grade {
case "A":
print("훌륭합니다!")
case "B":
print("좋아요!")
break // 여기서 switch 문 종료
case "C":
print("노력이 필요합니다.")
default:
print("잘못된 입력입니다.")
}
// 실행 결과
좋아요!
"B" 에 해당하는 case 를 실행한 후 break 에 의해 switch 문이 종료된다continue - 현재 반복을 건너뛰고 다음 반복 실행continue 문은 현재 실행 중인 반복문의 나머지 코드를 건너뛰고, 다음 반복을 실행할 때 사용한다continue를 사용하여 짝수만 출력for i in 1...10 {
if i % 2 != 0 {
continue // 홀수일 때 실행을 건너뛰고 다음 반복으로 이동
}
print(i)
}
// 실행 결과
2
4
6
8
10
i % 2 != 0 (홀수)일 경우 continue 실행 -> print(i) 를 건너뛰고 다음 반복으로 이동for number in 1...5 {
if number == 3 {
print("3은 건너뜁니다!")
continue
}
print("number: \(number)")
}
// 실행 결과
number: 1
number: 2
3은 건너뜁니다!
number: 4
number: 5
number == 3 일 때 continue 가 실행되어 print("number: \(number)") 가 실행되지 않는다fallthrough - switch 문에서 다음 case 실행fallthrough 문은 switch 문에서 현재 case 가 끝난 후에도 다음 case 로 계속 실행되도록 하는 문장이다fallthrough 를 사용하여 다음 case 실행let number = 2
switch number {
case 1:
print("1입니다.")
case 2:
print("2입니다.")
fallthrough // 다음 case로 이동
case 3:
print("3입니다.")
default:
print("다른 숫자입니다.")
}
// 실행 결과
2입니다.
3입니다.
case 2 에서 fallthrough 가 실행되어 case 3 까지 실행된다⚠️ 주의: fallthrough 는 조건을 확인하지 않고 무조건 다음 case 실행
throw - 오류(Error) 발생시키키throw 문을 사용하여 오류를 발생시키고 실행을 중단할 수 있다throw 를 사용하여 오류 발생enum MathError: Error {
case divideByZero
}
func divide(_ a: Int, by b: Int) throws -> Int {
if b == 0 {
throw MathError.divideByZero // 오류 발생
}
return a / b
}
// 오류 처리
do {
let result = try divide(10, by: 0)
print(result)
} catch {
print("에러 발생: \(error)")
}
// 실행 결과
에러 발생: divideByZero
b == 0 이면 throw MathError.divideByZero 실행 -> 오류 발생do-catch 구문을 사용하여 오류를 안전하게 처리