for-in

for 반복변수(상수) in 시퀀스 {
    //반복할 문장
}

반복변수는 let이나 var로 선언하지 않아도 된다. 반복의 범위에서만 사용하는 변수이다.
반복변수는 사실 루프가 시작될 때 값이 정해져서 나오는 상수이다.

시퀀스에는 반복가능한 시퀀스인 배열이나 딕셔너리, 범위연산자를 사용한 시퀀스가 들어갈 수 있다.

//배열
let scores = [99, 80,100]

for score in scores {
    print(score)
}

>>>
99
80
100

---
//딕셔너리
let height = ["A":170, "B":180, "C":190]

for(name, h) in height {
    print("\(name) : \(h)")
}

>>>
B : 180
C : 190
A : 170

---
//범위연산자
for i in 1...5 {
    print(i)
}

>>>
1
2
3
4
5

닫힌범위 연산자 : ...
반열린범위 연산자 : ..<

정수 range : x … y (온점 3개) : x~y까지 1씩 증가하면서 반복

x ..< y : x부터 y-1까지

for-in 반복을 사용하되 변수는 사용하고 싶지 않을 때가 있음.
_ (언더바)를 변수 자리에 사용함

튜플은 for-in 반복에 사용할 수 없음. (반복을 위한 시퀀스로 변환할 수 없음)

배열 슬라이스.
array[index] : 배열의 원소 하나만 출력
array[x…y] : 배열의 인덱스 x부터 y까지 출력. y에 해당하는 인덱스가 없는 경우 오류이므로 주의
array[…y] : 배열의 처음부터 인덱스 y까지 출력. 마찬가지로 y에 해당하는 인덱스가 없는 경우 오류 array[x…] : 배열의 인덱스 x부터 배열의 끝까지 출력

while

while 조건 {
    //조건이 참일때 실행할 문장
}

while은 반복이 얼마나 실행될 지 모를 때 사용하면 도움이 된다.

ex)Int, Double의 .random(in:)을 사용해 원하는 수가 나올 때까지 랜덤한 수를 뽑는 경우

continue / break

continue : 현재 반복을 종료하고 다음 반복을 실행 break : 모든 반복을 종료하고 빠져나옴

라벨이 있는 구문

labeled Statements

n중으로 중첩된 반복문 안에서 반복 조기 종료조건을 사용하여 반복 전체를 빠져나가고 싶을 때 유용하게 사용됨.

ex)

<라벨이름> : while <조건> {
    <문장>
}

let options = ["up","down","left","right"]
let secretCombination = ["up","up","right"]

outerloop: for op1 in options {
    for op2 in options {
        for op3 in options {
            print("In Loop")
            let attempt = [op1, op2, op3]
            
            if attempt == secretCombination {
                print("The combination is \(attempt)")
                break outerloop
            }
        }
    }
}

카테고리:

업데이트: