IOS개발: SWIFT/2. 기본 문법 마스터

Swift 제어 흐름: if, else, switch, for, while, repeat-while

_Blue_Sky_ 2024. 9. 12. 14:59
728x90
728x90

Swift 제어 흐름: 코드의 흐름을 조절하는 다양한 방법

Swift는 코드의 실행 흐름을 제어하기 위해 다양한 제어 흐름 구문을 제공합니다. 이러한 구문들을 효과적으로 사용하면 복잡한 알고리즘도 명확하고 가독성 있게 구현할 수 있습니다.

1. 조건문: if, else, switch

  • if 문: 주어진 조건이 참일 때 특정 코드 블록을 실행합니다.
    let age = 25
    if age >= 18 {
        print("성인입니다.")
    } else {
        print("미성년자입니다.")
    }
    
     
  • switch 문: 다양한 값에 따라 다른 코드 블록을 실행합니다.
    let dayOfWeek = "Sunday"
    switch dayOfWeek {
    case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday":
        print("평일입니다.")
    case "Saturday", "Sunday":
        print("주말입니다.")
    default:
        print("잘못된 요일입니다.")
    }
    
     
    switch 문의 특징:
    • 완전 일치: 모든 가능한 경우를 다루지 않으면 오류가 발생합니다.
    • fallthrough: fallthrough 키워드를 사용하여 다음 case로 넘어갈 수 있습니다.
    • where 절: case 조건에 추가적인 조건을 설정할 수 있습니다.
    • 범위 매칭: 숫자 범위나 문자열 범위를 매칭할 수 있습니다.
    • 튜플: 튜플을 사용하여 복합적인 패턴 매칭을 할 수 있습니다.
  • guard 문: 조건이 거짓일 때 코드 블록을 빠져나가고, 참일 때만 다음 코드를 실행합니다. 일반적으로 오류 처리에 사용됩니다.
    func greet(name: String?) {
        guard let name = name else {
            print("이름을 입력하세요.")
            return
        }
        print("Hello, \(name)!")
    }
    
     

2. 반복문: for, while, repeat-while

  • for-in 루프: 배열, 딕셔너리, 범위 등의 요소를 순회하며 반복 작업을 수행합니다.
    let numbers = [1, 2, 3, 4, 5]
    for number in numbers {
        print(number)
    }
    
     
  • while 루프: 주어진 조건이 참인 동안 반복적으로 코드 블록을 실행합니다.
    var count = 0
    while count < 5 {
        print(count)
        count += 1
    }
    
     
  • repeat-while 루프: 코드 블록을 한 번 실행한 후 조건을 검사하고, 조건이 참이면 다시 실행합니다.
    var count = 0
    repeat {
        print(count)
        count += 1
    } while count < 5
    
     

3. 제어 전달: break, continue

  • break: 반복문이나 switch 문을 즉시 빠져나갑니다.
  • continue: 현재 반복을 건너뛰고 다음 반복으로 이동합니다.

4. 레이블과 제어 전달

  • 레이블: 반복문이나 조건문에 레이블을 붙여 특정 구문을 더 정확하게 제어할 수 있습니다.
    outerLoop: for i in 1...3 {
        for j in 1...3 {
            if i == 2 && j == 2 {
                break outerLoop
            }
            print("(\(i), \(j))")
        }
    }
    
     

Swift 제어 흐름의 특징

  • 명확하고 간결한 문법: 다른 언어에 비해 더 간결하고 직관적인 문법을 제공합니다.
  • 안전한 코드: 옵셔널 타입, 타입 추론 등을 통해 안전한 코드 작성을 유도합니다.
  • 다양한 기능: switch 문의 강력한 패턴 매칭, guard 문을 통한 오류 처리 등 다양한 기능을 제공합니다.
  • 함수형 프로그래밍 지원: 고차 함수, 클로저 등을 활용하여 함수형 프로그래밍 스타일로 코드를 작성할 수 있습니다.

Swift의 제어 흐름은 다양한 상황에 유연하게 대처할 수 있도록 설계되었습니다. 이러한 기능들을 효과적으로 활용하여 더욱 강력하고 안정적인 Swift 코드를 작성할 수 있습니다.

728x90
728x90