for-in
구문으로 해당 범위만큼 반복문을 수행한다.for index in 1...5 {
print(index)
}
// console
1
2
3
4
5
_
로 처리하여 값이 할당되지 않도록 한다.for _ in 1...3 {
print("Hello!")
}
// console
Hello!
Hello!
Hello!
// x <= i <= y
for i in x...y { ... }
// x <= i < y
for i in x..<y { ... }
let animals = ["Lion", "Tiger", "Bear"]
for index in 0..<animals.count {
print("\(index): \(animals[index])")
}
// console
0: Lion
1: Tiger
2: Bear
let names = [”Joseph”, “Cathy”, “Winston”]
for name in names {
print(name)
}
// console
Joseph
Cathy
Winston
for letter in “ABCD” {
print(letter)
}
// console
A
B
C
D
Array
, String
에 enumerated()
를 사용하면 인덱스와 각 원소를 튜플로 리턴한다.for (index, letter) in “ABCD”.enumerated() {
print(”\(index): \(letter)”)
}
// console
0: A
1: B
2: C
3: D
Dictionary
는 순서가 존재하지 않으므로 인덱스 대신 key, value값에 접근할 수 있다.let vehicles = [”unicycle”: 1, “bicycle”: 2, “tricycle”: 3,
“quad bike”: 4]
for (vehicleName, wheelCount) in vehicles {
print(”A \(vehicleName) has \(wheelCount) wheels”)
}
// console
A unicycle has 1 wheels
A bicycle has 2 wheels
A tricycle has 3 wheels
A quad bike has 4 wheels
조건이 true
이면 계속 loop를 반복하고 false
가 되면 loop를 빠져나간다.
조건 내부의 값을 변경해주는 로직이 존재하지 않으면 무한루프를 돌 수 있다.
var numberOfLives = 3
// numberOfLives가 0이 되거나 0보다 작아질 때까지 반복한다.
while numberOfLives > 0 {
// numberOfLives값을 변경해주는 로직이 존재해야 한다.
playMove()
updateLivesCount()
}
while
문과 비슷하지만 1번은 무조건 실행하고, 그 후 조건을 체크한다.var steps = 0
let wall = 2
repeat {
print("Step")
steps += 1
} while steps < wall
// console
Step
Step
for counter in -3...3 {
print(counter)
// counter가 0이 되면 for문을 종료한다.
if counter == 0 {
break
}
}
// console
-3
-2
-1
0
for person in people {
// 19세 이상의 사람들에게만 이메일을 전송한다.
if person.age < 18 {
continue
}
sendEmail(to: person)
}