티스토리 뷰
제어 전달문
(Control Transfer Statement)
1) 이론적 정의
- 특정 코드에서 다른 코드로 제어를 이전하여 코드 실행 순서를 변경하는 것
- Swift 에서는 5가지 키워드 사용.
2) 문법적 정의
1. continue
2. break
3. fallthrough * 조건문 파트에서 다루고 있으니 확인하시면 됩니다.
4. throw * 따로 다룰 예정
5. return * 함수 참고
2-1) Continue
- Continue 는 구문 아래에 있는 실행 구문들을 건너뛰고 다음 반복을 시작하게 해주는 역할을 한다.
- Continue 뜻 자체가 '계속하다' 라는 뜻임을 잘 기억하자.
e.g. Continue
for num in 0...8 {
if num % 2 == 0 {
continue
}
print(num) // 결과 : 1, 3, 5, 7
}
1 : num 으로 0부터 8까지의 수가 하나 씩 들어가게 되는 for ~ in 구문.
2 : 0이 처음으로 들어가게 되고 내부 실행구문인 if를 만나게 된다.
3 : '0 % 2 == 0' 의 조건을 만족하게 되어 내부 실행구문으로 들어가 continue 를 만나게 된다.
4 : 여기서 continue의 뜻은 '계속해서 밑으로 내려가세요' 가 아니라 '나(continue)를 만났으니 다시 돌아가서 하던 반복 이어서 계속하세요' 가 되는 것이다.
5 : 그렇게 다음 num으로 1이 들어가서 if문을 만나 '1 % 2 == 0' 의 조건을 평가하게 되는데, 조건이 false 이므로 if문의 내용을 수행하지 않고 아래의 'print(num)' 을 수행한다.
6 : 이런 식으로 2부터 8까지 반복되어 결국 이 반복문은 홀수인 1,3,5,7 을 출력하게 되며 반복문이 종료된다.
2-2) Break
- 반복문 혹은 Switch 구문에서 사용되는 'Break'.
- 반복문에서 사용되면 즉시 반복문을 종료하게 만드는 역할.
- Switch 구문에서 사용되면 특정한 case를 충족할 시 종료하게 만드는 역할.
e.g 1. 제어 전달문 Break
for num in 0...8 {
if num % 2 == 0 {
break <---- break는 for문을 탈출할 때 쓰고, return은 함수를 탈출할 때 사용한다.
}
print(num)
}
1 : num 으로 0부터 8까지의 수가 하나 씩 들어가게 되는 for ~ in 구문.
2 : 0이 처음으로 들어가게 되고 내부 실행구문인 if를 만나게 된다.
3 : '0 % 2 == 0' 의 조건을 만족하게 되어 내부 실행구문으로 들어가 break 를 만나게 된다.
4 : for ~ in 구문 즉시 탈출. 아무것도 출력 되지 않고 끝나는 반복문.
e.g 2. 제어 전달문. Break
for i in 0...3 {
for j in 0...3 {
if i > 1 {
break
}
print(" inner \(j)")
}
print("outer \(i)")
}
1 : i로 0이 들어가게 되는데, 또 반복문을 만나게 된다. i는 0인 상태에서 j 에 0~3의 숫자가 하나씩 들어가게 된다.
2 : j에 0이 들어갔더니, 조건문을 만나게 된다. i인 0이 1보다 작으니 if문 내의 내용이 실행되지 않고 밑으로 내려가 'inner 0' 을 출력하게 된다.
3 : j에 들어가는 1,2,3 까지 위와 동일한 과정으로 출력이 된다. 그 다음 안의 for 반복문이 종료가 되고 그 아래 outer \(i) 로 들어가 현재 i의 상태인 0이 들어가서
outer 0 을 출력하면서 외곽의 for 문이 종료된다.
4 : i 에 1이 들어가게 되어도 위와 같은 과정을 거치게 된다.
5 : 하지만 i 에 2가 들어가게 되면서 사뭇 달라지는데, 직접 하나씩 넣어가면서 break 의 개념을 익힐 수 있도록 합니다 :)
결과)
inner 0
inner 1
inner 2
inner 3
outer 0
inner 0
inner 1
inner 2
inner 3
outer 1
outer 2
outer 3
지금까지 제어 전달문에 대해서 알아보았습니다. 틀린 부분이 있으면 댓글로 지적해주시면 감사드리겠습니다.
Made by Inswag's Swift in FastCampus 7th iOS Development School
'Programming > Swift' 카테고리의 다른 글
1. Swift : 집단 자료형(Collection Type) - 배열(Array) (0) | 2018.06.16 |
---|---|
1. Swift : 열거형(Enumerations) (0) | 2018.06.15 |
1. Swift : 튜플(Tuple) (0) | 2018.06.02 |
1. Swift : 반복문(Loops) (0) | 2018.05.23 |
1. Swift : 조건문(Conditional Statements) (0) | 2018.05.23 |
- Total
- Today
- Yesterday
- 리터럴
- 튜플
- swiftUI
- 컨버전
- commit
- 타입
- OOP
- Operator
- fallthrough
- 딕셔너리
- var
- ios
- 개발스쿨
- array
- iOS개발스쿨
- lifecycle
- 패캠
- GCD
- tca
- function
- 프로그래밍
- Swift
- Dictionary
- ARC
- 스위프트
- fastcampus
- 열거형
- inswag
- 패스트캠퍼스
- 깃허브
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |