티스토리 뷰
이번에는 swift 의 제어 전달문(Control Transfer Statements)과 Labeled Statements 에 대해 알아보겠습니다.
1. Control Transfer Statements
제어 전달문이란, 조건문과 반복문에서 일반적인 코드의 흐름을 바꾸기 위해 사용하는 문장을 의미합니다.
제어 전달한다는 것은 현재 scope 에서 코드를 중지하고 다음 실행할 코드를 바로 실행하는 것을 말합니다.
제어 전달문의 종류는 다음과 같습니다.
- break
- continue
- fallthrough
- return
- throw
이번 글에서는 break, continue 에 대해서 알아보겠습니다.
2. break Statement
break 문은 호출되는 즉시 해당 문장을 중지하고 다음 문장으로 제어를 이동시키는 것을 의미하며, 반복문과 switch 문에서 사용됩니다.
// 1. switch 문에서 사용
// : case 블록 내에서 특정 조건에 따라 switch 문을 종료
let num = 2
switch num {
case 1 ... 10:
print("begin block")
if num % 2 != 0 {
// switch 문을 종료하고 다음 문장으로 제어 전달
break
}
print("end block")
default:
break
}
print("done")
print("----------------------------")
// 2. 반복문에서 사용
// : break 는 문장을 중지하는데 문장이 중첩되어 있다면 가장 인접한 문장을 중지
for index in 1 ... 10 {
print(index)
if index > 1 {
// for-in 반복문을 종료하고 다음 문장으로 제어 전달
break
}
}
print("----------------------------")
for i in 1 ... 10 {
print("OUTER LOOP", i)
for j in 1 ... 10 {
print(" inner loop", j)
if j > 1 {
// 가장 인접한 문장을 종료함
break
}
}
}
// 출력 결과
begin block
end block
done
----------------------------
1
2
----------------------------
OUTER LOOP 1
inner loop 1
inner loop 2
OUTER LOOP 2
inner loop 1
inner loop 2
OUTER LOOP 3
inner loop 1
inner loop 2
OUTER LOOP 4
inner loop 1
inner loop 2
OUTER LOOP 5
inner loop 1
inner loop 2
OUTER LOOP 6
inner loop 1
inner loop 2
OUTER LOOP 7
inner loop 1
inner loop 2
OUTER LOOP 8
inner loop 1
inner loop 2
OUTER LOOP 9
inner loop 1
inner loop 2
OUTER LOOP 10
inner loop 1
inner loop 2
3. continue Statement
countinue 문은 현재 반복 중인 문장을 중지하고 다음 반복을 수행하는 문장으로 반복문에서만 사용됩니다.
for index in 1 ... 10 {
if index % 2 == 0 {
// 1. 현재 실행중인 반복을 중지하고 다음 반복으로 이동함
continue
}
print(index)
}
print("----------------------------")
for i in 1 ... 10 {
print("OUTER LOOP", i)
for j in 1...10 {
if j % 2 == 0 {
// 2. 가장 인접한 문장에 영향을 준다
continue
}
print(" inner loop", j)
}
}
// 출력 결과
1
3
5
7
9
----------------------------
OUTER LOOP 1
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 2
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 3
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 4
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 5
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 6
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 7
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 8
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 9
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 10
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
4. Labeled Statements
Labeled Statements 란, 문장에 이름을 붙이는 것으로 break, continue 와 함께 사용됩니다.
형태는 다음과 같습니다.
Label: statement
break Label
continue Label
// 동일한 label 을 가진 문장을 제어함으로써 원하는 문장을 직접 제어할 때 사용함
for i in 1...3 {
print("OUTER LOOP", i)
for j in 1...3 {
print(" inneer loop", j)
break
}
}
print("----------------------------")
outer: for i in 1...3 {
print("OUTER LOOP", i)
for j in 1...3 {
print(" inneer loop", j)
break outer
}
}
// 출력 결과
OUTER LOOP 1
inneer loop 1
OUTER LOOP 2
inneer loop 1
OUTER LOOP 3
inneer loop 1
----------------------------
OUTER LOOP 1
inneer loop 1
지금까지 제어 전달문(Control Transfer Statements)과 Labeled Statements 에 대해 알아보았습니다.
'swift > 문법' 카테고리의 다른 글
08. Swift 문법 - Functions (0) | 2020.10.17 |
---|---|
07. Swift 문법 - Optionals (0) | 2020.10.13 |
05. Swift 문법 - Loop Statements (0) | 2020.10.11 |
04. Swift 문법 - Conditional Statements (0) | 2020.10.11 |
03. Swift 문법 - Operators (0) | 2020.10.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- search
- CodeDeploy
- array
- Baekjoon
- string
- sort
- 조합
- 수학
- 에라토스테네스의 체
- SWIFT
- DFS
- spring
- AWS
- EC2
- ionic
- ECR
- map
- Algorithm
- BFS
- cloudfront
- 소수
- Dynamic Programming
- Combination
- programmers
- CodeCommit
- 순열
- java
- 프로그래머스
- permutation
- CodePipeline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함