for 문
- 컬렉션이나 범위 등 반복 가능한 시퀀스의 각 요소에 대해 반복 실행할 때 사용하는 구문이다
- Swift에서는 주로
for-in 문을 사용하며, 간결하고 직관적인 문법으로 많은 반복 작업을 쉽게 처리할 수 있다
for-in 문의 구조
for item in sequence {
}
사용하는 이유
- 간결함: 배열이나 범위의 모든 요소에 대해 일괄 처리할 때, 복잡한 인덱스 관리 없이 간단하게 작성할 수 있다
- 가독성: 반복 대상이 무엇인지 명확하게 드러나므로, 코드를 읽고 이해하기 쉽다
- 안전성: 인덱스 범위 오류 없이 안전하게 요소들을 순회할 수 있다
코드 예제
1. 범위를 이용한 반복
for i in 1...5 {
print("현재 숫자: \(i)")
}
for num in stride(from: 1, to: 15, by: 2) {
print(num)
}
2. 배열을 이용한 반복
let fruits = ["사과", "바나나", "오렌지"]
for fruit in fruits {
print("맛있는 \(fruit)")
}
3. 딕셔너리를 이용한 반복
let scores = ["Royce": 85, "Steve": 92, "Charlie": 78]
for (name, score) in scores {
print("\(name)은 \(score)점을 받았습니다.")
}
4. 문자열에서도 사용 가능
for chr in "Hello" {
print(chr)
}
(참고)와일드 카드 패턴 _ (Wildcard Pattern)
- Swift에서 특정 값에 관심이 없거나, 그 값을 사용하지 않고 단순히 "어떤 값이든" 일치시키고자 할 때 사용하는 패턴이다
- 이때 사용하는 기호는 언더스코어(
_)이다
- 와일드 카드 패턴은 값의 구체적인 내용에 신경쓰지 않고, 패턴 매칭 조건을 단순화할 수 있다
와일드 카드 패턴의 특징
- 값 무시: 특정 값이나 변수의 내용을 바인딩하지 않고, 해당 값이 어떤 것이든 상관없음을 나타낸다
- 코드 간결성: 사용하지 않는 값을 명시적으로 무시함으로써, 불필요한 변수명을 줄이고 가독성을 높인다
- 패턴 매칭 활용: switch 문, for-in 문 등에서 조건을 간단하게 처리할 때 유용하다
와일드 카드 패턴 사용 예시
1. switch 문에서의 사용
let score = 75
switch score {
case 0...50:
print("낙제")
case 51...80:
print("합격")
case 81...100:
print("우수")
case _:
print("잘못된 점수")
}
let point = (x: 0, y: 5)
switch point {
case (0, 0):
print("원점")
case (_, 0):
print("x축 위")
case (0, _):
print("y축 위")
default:
print("기타")
}
2. for-in 문에서의 사용
for _ in 1...5 {
print("Hello, World!")
}
while 문
- 주어진 조건이 참인 동안 코드 블록을 반복 실행하는 제어문이다
- 조건이 반복 실행 전에 평가되기 때문에, 처음부터 조건이
false라면 한 번도 실행되지 않을 수 있다
while 문의 기본 문법
while 조건 {
}
var count = 1
while count <= 5 {
print("현재 count: \(count)")
count += 1
}
repeat-while 문
- 조건 검사 전에 코드 블록을 최소 한 번 실행한다
repeat-while 문의 기본 문법
repeat {
} while 조건
var number = 10
repeat {
print("현재 number: \(number)")
number -= 1
} while number > 10