100 Days of SwiftUI - Day 6
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
}
}
}
}