for๋ฌธ์ stride ๋ฉ์๋
for i in stride(from: 0, to: 10, by: 2) {
print(i) // 0, 2, 4, 6, 8
}
for i in stride(from: 0, through: 10, by: 2) {
print(i) // 0, 2, 4, 6, 8, 10
}
// reverseํ๊ณ ์ถ์ ๋ ์ธ ์ ์๋ค.
for i in stride(from: 3, through: 0, by: -1) {
print(i) // 3, 2, 1, 0
}
- 1์ฉ ์ฆ๊ฐ๊ฐ ์๋ ์ํ๋ ์ซ์๋งํผ ์ฆ๊ฐ ์ํค๊ณ ์ถ์ ๋ ์ฌ์ฉ
- to : toํ๋ผ๋ฏธํฐ์ ์๋ ์๋ฅผ ์ ์ธํ๋ค.
- through: throughํ๋ผ๋ฏธํฐ์ ์๋ ์ ํฌํจํ๋ค.
repeat while ๊ตฌ๋ฌธ
var num = 1
repeat {
num += 1
} while num <= 5
print(num) // 6
๋ฃจํ์ ์กฐ๊ฑด์ ํ๋จํ๊ธฐ ์ ์ ๋ฃจํ ๋ธ๋ญ์ ์ฒ์์ ํ ๋ฒ ๋จผ์ ํต๊ณผํ๋ค.
switch ๊ตฌ๋ฌธ
- break ๊ตฌ๋ฌธ ์์ฒญ ์์ด ์ฒ์ ์ผ์นํ๋ switch ์ผ์ด์ค๊ฐ ์๋ฃ๋์๋ง์ switch ๊ตฌ๋ฌธ ์ ์ฒด๊ฐ ๋๋๋ค.
- ํญ์ ์๋ฒฝํด์ผ ํ๋ค. → ๋ชจ๋ ์ผ์ด์ค๋ฅผ ๊ณ ๋ คํด์ผ ํจ
- ๋ฐ๋ผ์ default ํค์๋๋ก ๊ธฐ๋ณธ ์ผ์ด์ค๋ฅผ ์ ์ํ๋ค.
enum Color { case red case blue } let myColor: Color = .blue switch myColor { case .red: print("red") case .blue: print("blue") }
- ๋ชจ๋ ์ผ์ด์ค๊ฐ ๊ณ ๋ ค๋๋ค๋ฉด default ํค์๋ ํ์์์ (ex enumํ์ ์ ๋ชจ๋ ์ผ์ด์ค ๊ณ ๋ คํ ๊ฒฝ์ฐ)
let anotherCharacter: Character = "a"
switch anotherCharacter {
case "a", "A":
print("The letter A")
default:
print("Not the letter A")
}
- ๋ ๊ฐ์ ์ฝค๋ง๋ก ๊ตฌ๋ถํ์ฌ ์ผ์ด์ค ๊ฒฐํฉ ๊ฐ๋ฅํ๋ค.
let anotherPoint = (2, 2)
switch anotherPoint {
case (let x, let y):
print("on the x-axis with an x value of \\(x) \\(y)")
fallthrough
case (0, _):
print("on the y-axis with a x value of 0")
case let (x, y) where x == y:
print("(\\(x), \\(y)) is on the line x == y")
}
// on the x-axis with an x value of 2
// on the y-axis with a x value of 0
- switch ๊ตฌ๋ฌธ์ ์ฌ๋ฌ ๊ฐ์ธ ํํ์ ์ฌ์ฉํ ์ ์๋ค.
- _ ๋ฌธ์๋ก ์๋ต ๊ฐ๋ฅํ๋ค.
- ๊ฐ ๋ฐ์ธ๋ฉ์ ํ ์ ์๋ค. (ex) let x)
- fallthrough ํค์๋๋ก ๋ค์ ์ผ์ด์ค๋ก ๋์ด๊ฐ ์ ์๋ค.
๋ผ๋ฒจ์ด ์๋ ๊ตฌ๋ฌธ
whileLoop: while true {
for i in 0..<10 {
if i == 9 {
break whileLoop
}
}
}
- while๋ฌธ์ ๋ผ๋ฒจ์ ๋ถ์ฌ for๋ฌธ ์์ break ๋ก ๋ฐ๋ก ํ์ถ ๊ฐ๋ฅํ๋ค.
Defer
if score < 10 {
defer {
print(score)
}
defer {
print("The score is:")
}
defer {
print("Wow")
}
score += 5
}
// Wow
// The score is:
// 6
- if ๊ตฌ๋ฌธ์ ๋ณธ๋ฌธ์ด ์ข ๋ฃ๋๊ธฐ ์ ์ ์คํ๋๋ค.
- ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์ข ๋ฃํ๋์ง์ ๊ด๊ณ์์ด defer ์์ ์ฝ๋๋ ํญ์ ์ํ๋๋ค.
- defer ๋ธ๋ญ์ด ์ฌ๋ฌ๊ฐ๋ฉด ์ฒซ๋ฒ์งธ defer ๋ธ๋ญ์ ๋ง์ง๋ง์ ์ํ๋๋ค.
'Swift Language Guide' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Language Guide] ํด๋ก์ (Closures) (0) | 2023.06.05 |
---|---|
[Swift Language Guide] ํจ์(Functions) (0) | 2023.05.24 |
[Swift Language Guide] ์ฝ๋ ์ ํ์ (Collection Types) (0) | 2023.05.24 |
[Swift Language Guide] ๋ฌธ์์ด๊ณผ ๋ฌธ์ (Strings and Characters) (2) | 2023.05.16 |
[Swift Language Guide] ๊ธฐ๋ณธ ์ฐ์ฐ์ (Basic Operators) (0) | 2023.05.16 |