본문 바로가기
카테고리 없음

3. 조건문(if, switch)

by swifttt 2025. 3. 28.

 

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("비회원은 할인 대상이 아닙니다.")
}

중첩된 조건은 가독성을 해칠 수 있으므로, 조건이 복잡해질 경우 guardswitch로 구조를 단순화하는 것이 좋습니다.

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)는 홀수입니다.")
}

마무리

ifswitch는 상황에 따라 적절히 선택하여 사용하는 것이 중요합니다. 단순 조건에는 if, 명확하게 분기할 수 있는 값에는 switch를 사용하는 것이 가독성과 유지보수 측면에서 효과적입니다. 특히 Swift의 switch문은 안전성과 표현력이 뛰어나므로 적극적으로 활용하는 것이 좋습니다.