티스토리 뷰
Control Flow
Swift에서는 while, if guard, switch, for-in 문 등 많은 제어문을 제공합니다.
내용이 많아 2개로 나눠서 정리해보려고 합니다
조건문은 따로 정리할게요 !
For-in Loops
for-in 문은 배열, 숫자, 문자열을 순서대로 순회 하기 위해 사용합니다.
let names = ["Roy", "Daisy", "Lily", "Jason"]
for name in names {
print("Hello, \(name)!")
}
// Hello, Roy!
// Hello, Daisy!
// Hello, Lily!
// Hello, Jason!
dictionary에서 반환된 key-value 로 구성된 튜플을 순회하며 제어할 수도 있습니다.
※ dictionary에 담긴 콘텐츠는 정렬 되지 않은 상태입니다.
let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
print("\(animalName)s have \(legCount) legs")
}
// ants have 6 legs
// spiders have 8 legs
// cats have 4 legs
숫자 범위를 지정해 순회할 수 있습니다.
for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
for-in 문을 순서대로 제어할 필요가 없다면, 변수자리에 _ (underscore)키워드를 사용해 성능을 높일 수 있습니다.
let base = 3
let power = 10
var answer = 1
for _ in 1...power {
answer *= base
}
print("\(base) to the power of \(power) is \(answer)")
// 3 to the power of 10 is 59049
범위 연산자와 사용할 수도 있습니다.
let minutes = 60
for tickMark in 0...minutes {
// tickmark가 60번 찍힘
}
stride(from:to:by:) 메소드로 구간별로 설정할 수 있습니다.
(from부터 to 보다 작게 by 간격으로)
구간을 5로 설정.
let minutes = 60
let minuteInterval = 5
for tickMark in stride(from: 0, to: minutes, by: minuteInterval) { // 0부터 60보다 작은 수를 5의 간격으로
print(tickMark)
// 0, 5, 10 ... 55
}
stride(from:through:by:) (from 부터 through 까지 by 간격으로)
구간을 3으로 설정
let hours = 12
let hourInterval = 3
for tickMark in stride(from: 3, through: hours, by: hourInterval) { // 3부터 12까지 3의 간격으로
print(tickMark)
// (3, 6, 9, 12)
}
While문 (While Loops)
while 루프는 조건이 거짓이 될 때까지 명령문을 수행합니다.
Swift에서는 while과 repeat-while 두 가지 종류의 while문을 지원합니다.
사용법
while condition {
statements
}
while 문 예시
var arrInt = [Int]() // []
var numberCount: Int = 0
while arrInt.count < 7 {
print(arrInt)
arrInt.insert(numberCount, at: arrInt.endIndex)
numberCount += 1
}
// []
// [0]
// [0, 1]
// [0, 1, 2]
// [0, 1, 2, 3]
// [0, 1, 2, 3, 4]
// [0, 1, 2, 3, 4, 5]
위 코드를 설명하자면
빈배열을 담는 변수 arrInt와 Int를 갖는 변수 numberCount를 선언하고
arrInt.count가 7미만 일때까지
numberCount의 값을 1씩 증가시키고
arrInt 배열에numberCount의 값을 하나씩 넣으면서 루프를 돌립니다.
Repeat-While 문
repeat-while 문은 다른 언어의 do-while과 유사합니다.
사용법
repeat {
statements
} while condition
repeat-while 문 예시 (while과 차이를 잘 모르겠다.. 순서가 바뀐정도?)
repeat {
print(arrInt)
arrInt.insert(numberCount, at: arrInt.endIndex)
numberCount += 1
} while arrInt.count < 7 // 조건이 true 이면 repeat scope로 이동
// []
// [0]
// [0, 1]
// [0, 1, 2]
// [0, 1, 2, 3]
// [0, 1, 2, 3, 4]
// [0, 1, 2, 3, 4, 5]
'iOS' 카테고리의 다른 글
[iOS] #available(platform name version, *) (0) | 2022.01.14 |
---|---|
[Swift] Control Flow 1-2 - 조건구문 (if, switch, guard) (0) | 2022.01.12 |
[iOS] Xcode에 글씨체 (폰트-Font) 적용 (0) | 2022.01.07 |
[Swift] removeLast() , popLast() 차이점 (0) | 2022.01.06 |
[iOS] GCD (Grand Central Dispatch) (0) | 2022.01.05 |
- Total
- Today
- Yesterday
- Combine: Asynchronous Programming with Swift
- Swift RIBs
- swift protocol
- Swift 알고리즘
- swift programmers
- Swift final
- Swift 내림차순
- Swift inout
- iOS error
- swift property
- Class
- Swift init
- swift (programmers)
- Swift 프로퍼티
- swift 고차함수
- Swift
- Swift Leetcode
- CS 네트워크
- RTCCameraVideoCapturer
- ios
- removeLast()
- Swift joined()
- 2023년 회고
- RIBs tutorial
- Swift ModernRIBs
- Swift joined
- 원티드 프리온보딩
- swift reduce
- Swift 프로그래머스
- Swift Error Handling
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |