Swift에서는 조건에 따라 코드의 흐름을 분기하는 방법으로 if
문과 switch
문을 제공합니다. 두 조건문 모두 논리적인 흐름을 제어하는 핵심 도구이며, 상황에 따라 적절히 사용하는 것이 중요합니다.
1. if문 기본 형태
if
문은 조건이 참일 때만 특정 블록의 코드를 실행합니다. else if
, else
절을 추가하여 다양한 경우를 처리할 수 있습니다.
let score = 85
if score >= 90 {
print("A등급입니다.")
} else if score >= 80 {
print("B등급입니다.")
} else {
print("C등급 이하입니다.")
}
위 예제는 점수에 따라 다른 메시지를 출력합니다. 조건은 위에서부터 차례로 평가되며, 첫 번째로 참인 조건만 실행됩니다.
2. 중첩된 if문
조건이 복잡하거나 상황이 많을 경우, if
문을 중첩하여 사용할 수 있습니다.
let isMember = true
let purchaseAmount = 12000
if isMember {
if purchaseAmount >= 10000 {
print("회원 할인 적용 대상입니다.")
} else {
print("구매 금액이 부족합니다.")
}
} else {
print("비회원은 할인 대상이 아닙니다.")
}
중첩된 조건은 가독성을 해칠 수 있으므로, 조건이 복잡해질 경우 guard
나 switch
로 구조를 단순화하는 것이 좋습니다.
3. switch문 기본 구조
switch
문은 하나의 값을 여러 경우에 비교할 때 유용합니다. Swift의 switch
는 다른 언어보다 강력하며, 모든 경우를 처리해야 합니다.
let grade = "B"
switch grade {
case "A":
print("매우 우수합니다.")
case "B":
print("우수합니다.")
case "C":
print("보통입니다.")
default:
print("등급 정보가 없습니다.")
}
default
는 모든 경우에 해당하지 않을 때 실행되는 블록입니다. 생략할 수 없으며, 모든 경우를 반드시 처리해야 한다는 Swift의 안전성 철학이 반영되어 있습니다.
4. 범위와 튜플 패턴 사용
switch
는 범위 연산자(...
또는 <..
)를 사용할 수 있으며, 튜플이나 enum 값과도 잘 어울립니다.
let score = 72
switch score {
case 90...100:
print("A등급입니다.")
case 80..<90:
print("B등급입니다.")
case 70..<80:
print("C등급입니다.")
default:
print("D등급 이하입니다.")
}
5. where절을 사용한 조건 추가
switch
문에서 where
절을 사용하면 보다 정교한 조건 분기가 가능합니다.
let number = 15
switch number {
case let x where x % 2 == 0:
print("\(x)는 짝수입니다.")
default:
print("\(number)는 홀수입니다.")
}
마무리
if
와 switch
는 상황에 따라 적절히 선택하여 사용하는 것이 중요합니다. 단순 조건에는 if
, 명확하게 분기할 수 있는 값에는 switch
를 사용하는 것이 가독성과 유지보수 측면에서 효과적입니다. 특히 Swift의 switch
문은 안전성과 표현력이 뛰어나므로 적극적으로 활용하는 것이 좋습니다.