본문 바로가기

스피드 문법정리

6. Loop Statements

For-in Loop

지정된 범위, 컬랙션을 반복하거나 열거할 수 있고 중첩도 가능

반복 상수는 range의 lower bound, upper bound 와 동일한 자료형

for loopConstant in Range {
    statements
}

for loopConstant in Collection {
    statements
}

반복 상수의 자료형은 Range의 Lower Bound, Upper Bound와 동일

for index in 1...3 {
    print(index)
}
// 1, 2, 3

0~9 (10 미포함)에서 3의 배수

첫번째 파라미터에 시작할 범위, 두번째 파라미터에 종료할 범위 (종료할 범위는 실제범위에는 미포함), 세번째 파라미터 배수설정

for num in stride(from : 0, to : 10, by : 3) {
    print(num)
}
// 3, ,6, 9

구구단을 만드는 for in 중첩의 예시

for i in 2...9 {
   for j in 1...9 {
       print("\(i) * \(j) = \(i * j)")

컬랙션 열거

let list = ["Apple", "Banana", "Orange"]
for fruit in list {
   print(fruit)
}

While Loop

For in은 범위나 컬랙션을 반복하기 때문에 반복 횟수를 예측이 가능하지만 While 반복문은 조건에 따라 반복 횟수가 정해지기 때문에 반복 횟수를 예측할 수 없음 -> 무한루프에 빠지지 않도록 주의, 특정 시점에 false 가 되는지 항상 확인

while condition {
    statements
}
var num = 1
var sum = 0

while num <= 100 {
    sum += num
    num += 1
}
sum  // sum = 5050 (100times)

Repeat While Loop

While문은 조건식을 판단한 후 코드를 실행, Repeat While은 코드를 실행 후 조건을 판단

repeat {
    statements
} while condition
var num = 100

while num < 100 {
    num += 1
}

num  //100

num = 100

repeat {
    num += 1
} while num < 100

num  //101