Notice
Recent Posts
Recent Comments
Link
大器晩成
Swift 제어전송문 본문
제어전송문
- 스위프트에서 사용하는 제어전송문은 break, fallthrough, continue, return, throw로 총 다섯 가지입니다.
키워드 | 자주 사용되는 곳 | 설명 |
break | switch / 반복문 | 1) switch문: 케이스에서 실행하는 문장이 없을때, break 반드시 입력 2) 반복문: 가장 인접한 반복문의 모든 싸이클을 아예 중지(break)하고 반복문 다음의 문장으로 |
fallthrough | switch | switch문에서 매칭된 값에 대한 고려없이, 무조건 다음 문장도 실행하려할 때 사용 |
continue | 반복문 | 반복문에서 다음 반복문의 싸이클로 넘어가서 계속(continue) 실행함 |
return | 함수 | 1) 리턴타입 있는 함수: 리턴 키워드 다음의 표현식을 평가한 다음, 그 결과를 리턴하면서(함수 실행을 중지하고) 함수를 벗어남 ex) return "Hello" 2) 리턴타입 없는 함수: 함수의 실행을 중지하고 함수를 벗어남 |
throw | 함수 | 에러가 발생가능하도록 정의된 함수에서, throw 키워드 다음에 정의된 에러의 타입을 리턴 하면서(함수 실행을 중지하고) 함수를 벗어남 |
break
#1. break문 사용예시 (switch문)
var a = 2
switch a {
case 1:
break // 실행하는 문장이 없을때, 반드시 입력 (약속)
case 2:
print(a)
case 3:
print("3입니다.")
case 4:
print("4입니다.")
default:
break
}
// 가장 인접한 반복문을 중지
#2 for문
for index in 1...10 {
if index == 3 {
break
}
print(index)
}
#3 while문
var i = 0
while i < 5 {
i += 1
for j in 1...2 {
if i > 2 {
break
}
print(j)
}
}
- 주로 switch나 반복문(for/while)에서 사용됩니다.
- break문을 만나게 될 경우 해당 루프를 탈출합니다.(가장 인전합 루프를 나가게 됩니다.)
fallthrough
var a = 2
switch a {
case 1:
break
case 2:
print(a)
fallthrough
case 3:
print("3입니다.")
case 4:
print("4입니다.")
default:
break
}
// 출력: 2
// 출력: 3입니다.
- case문에서 주로 사용되며, 다음 case 조건과 상관없이 fallthrough 다음 case 구문은 실행됩니다.
continue
- 반복문(for/while 등)에서 사용
// continue는 반복문을 다음 싸이클로 보냄
// 다음 싸이클에서 계속 지속(continue)하라는 의미
for index in 1...10 {
if index % 2 != 0 {
continue
}
print(index)
}
- 반복문(for/while)에서 주로 사용되며, continue 구문을 만날 경우 아래 구문을 실행하지 않고 다음 사이클로 넘어갑니다.
return
func printNum(a: Int) {
if a > 5 {
return
}
print(a)
}
printNum(a: 10)
- 함수에서 주로 사용되며, return을 만날 경우 함수를 탈출하게 됩니다.
(반환값이 있는 함수의 경우 return 반환값)
throw
enum APIError: Error {
case aError
case bError
}
func doSomething2() throws -> String {
print("1")
print("2")
if true {
throw APIError.aError // 리턴과 동일한 역할(함수를 종료시킴) ===> 에러를 던지고 함수를 벗어남
}
print("3")
print("4")
return "안녕하세요"
}
- (에러가 발생할 수 있는) Throwing 함수에서 사용합니다.
728x90
'iOS > Swift 문법' 카테고리의 다른 글
옵셔널 체이닝 (4) | 2024.11.12 |
---|---|
inout 파라미터 (0) | 2024.11.08 |
함수의 오버로딩 (1) | 2024.11.08 |
함수의 표기법(시그니처 표기법) (0) | 2024.11.08 |
함수의 주의점 (3) | 2024.11.08 |