4.1 반복문

특정 로직을 반복하기 위한 기능

4.1.1 for~in 구문

일정 횟수만큼 반복하거나 List, Map, Set을 순회하면서 반복하는 기능

for i in 0...2 {
    print(i)
}
for i in 0...5 {
    if i % 2 == 0 {
        print(i)
        continue // 아래 코드를 실행하지 않고 다음 반복문 진행
    }
    print("\\(i) == 홀수")
}
let helloSwift: String = "Hello Swift!"
for char in helloSwift { // String을 Character로 반복문 실행
    print(char)
}
var result: Int = 1
// 시퀀스에 해당하는 값이 필요 없다면 와일드카드 식별자(_)를 사용
for _ in 1...3 {
    result *= 10
}
print("10의 3제곱은 \\(result)입니다.")
// Dictionary
let friends: [String: Int] = ["Jay": 35, "Joe": 29, "Jenny": 31]

for tuple in friends { // Dictionary 반복문
    print(tuple)
}
let 주소: [String: String] = ["도": "충청북도", "시군구": "청주시 청원구", "동읍면": "율량동"]
for (키, 값) in 주소 {
    print("\\(키) : \\(값)")
}
let 지역번호: Set<String> = ["02", "031", "032", "033", "041", "042", "043", "051", "052", "053", "054", "055", "061", "062", "063", "064"]
for 번호 in 지역번호 {
    print(번호)
}
for countdown in stride(from: 3, to: 0, by: -1) {
	// c나 java의 for 처럼 사용 할 수 있다.
}

4.1.2 while 구문

조건이 true 일 때 로직을 반복하는 기능

var names: [String] = ["Joker", "Jenny", "Nova", "yagom"]
while names.isEmpty == false {
    print("Good bye \\(names.removeFirst())")
}
// Good bye Joker
// Good bye Jenny
// Good bye Nova
// Good bye yagom 

4.1.3 repeat~while 구문

while과 비슷하지만 로직을 먼저 동작하고 조건을 검사하는 기능

var names: [String] = ["Joker", "Jenny", "Nova", "yagom"]
repeat {
    print("Good bye \\(names.removeFirst())")
}
while names.isEmpty == false
// Good bye Joker
// Good bye Jenny
// Good bye Nova
// Good bye yagom