ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] Swift 문법 (6) - 조건문(if, switch)
    Front-End(Mobile)/iOS & Swift 2022. 1. 29. 00:15
    반응형

    이번 포스팅은 Swift의 조건문(Conditionals) 에 대해 알아보려고 한다. 조건문은 더욱이 여타 프로그래밍 언어와 많이 다르지 않다.

     

    상대적으로 난이도도 어렵지 않은 내용이라, 간단한 포스팅으로 정리해보겠다!


    📙 if 문

    if문은 조건문에서 가장 흔하게 볼 수 있는 형태이다.

    특정 조건에서 발생하는 로직을 작성하며, 이외 케이스를 위한 else, 추가조건 분기를 위한 else if 등이 있다.

    let a: Int = 2
    
    if a < 0 {
      print("음수!")
    }
    else if a = 0 {
      print("0!")
    }
    else {
      print("양수!")
    }
    
    // 양수!

     

    기본적인 문법은아래와 같으며, else는 이외의 케이스기 때문에 별도의 조건을 설정하지 않는다.

    if [조건] {
      // 내부로직
    }
    
    // else if 혹은 else 필요한 경우
    else if [조건] {
      // 내부로직
    }
    else {
      // 내부로직
    }

     

     

    📙 switch 문

    switch문은 특정 변수(혹은 상수)가 복수의 값을 가질 수 있으며, 여기에 따른 로직을 처리하기 위해 많이 쓰이는 조건문이다.

    var a : String = "A"
    
    switch a {
    case "A":
        print("A")
    case "a":
        print("a")
    default:
        print("?")
    }
    // A
    
    
    var b : String = "b"
    
    switch b {
    case "A"..."Z":
        print("대문자")
    case "a"..."z":
        print("소문자")
    default:
        print("?")
    }
    // 소문자

     

    기본적인 문법은 아래와 같다. case에는 값뿐만이 아니라 조건(<, ==) 혹은 범위 연산자도 적용할 수 있다.

    특히, Swift의 switch문은 별도로 break를 매 케이스에 걸어줄 필요가 없다는 점이 편리하다.

    switch [변수] {
      case [케이스1]: 
        // 로직1
      case [케이스2]:
        // 로직2
      default:
        // 기본 로직
    }

     

    let fruit = "banana"
    
    switch fruit {
      case "apple":				// error!
      case "strawberry":
        print("red")
      case "banana":
        print("yellow")
      case "grape":
        print("purple")
      default:
        print("I don't know~")
    }

    복수의 케이스가 하나의 로직을 실행해야하는 경우도 존재할 것이다. JS와 달리 위 예시처럼 작성하면, 에러가 발생하게 된다.

    이러한 경우엔, 1) fallthrough 키워드를 사용하던가, 2) [케이스], [케이스] 로 연결하면 된다.

     

    // 1) fallthrough
    
    switch fruit {
      case "apple":
        fallthrough
      case "strawberry":
        print("red")
      case "banana":
        print("yellow")
      case "grape":
        print("purple")
      default:
        print("I don't know~")
    }
    
    
    // 2) ,(comma) 연결
    
    switch fruit {
      case "apple", "strawberry":
        print("red")
      case "banana":
        print("yellow")
      case "grape":
        print("purple")
      default:
        print("I don't know~")
    }

    조건문 역시 다른 프로그래밍 언어와 크게 다르지 않았다. 특히, If문은 초보자가 아니라면 바로 사용할 수 있을 정도인 것 같다.

    switch 문에서는 break가 없다는 점, 그리고 fallthrough 키워드 혹은 콤마를 통한 케이스 간 로직공유가 가능한 것 정도 명심하면 되겠다.

     

    이제 Swift의 기본적인 개념들도 어느정도 마무리되는 것 같다. 다음엔, Swift의 타입에 관련된 옵셔널(Optional)에 관해 포스팅하겠다!

     

    📎 출처

    - [Swift5 강의] iOS Academy(Part 8 - If Else Conditionals) : https://www.youtube.com/watch?v=rBotA3jwWkY&list=PL5PR3UyfTWvfacnfUsvNcxIiKIgidNRoW&index=8 

     

    - [조건문과 반복문] devxoul 님의 깃북 : https://devxoul.gitbooks.io/ios-with-swift-in-40-hours/content/Chapter-2/control-flow.html

    - [조건문] 프린스송 님의 블로그 : https://velog.io/@wook4506/iOS-Swift-Swift-%EB%AC%B8%EB%B2%95%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-2%ED%8E%B8-%EC%A1%B0%EA%B1%B4%EB%AC%B8if%EB%AC%B8-switch%EB%AC%B8

    - [조건문] 야곰 님의 블로그 : https://blog.yagom.net/548/

    반응형
Designed by Tistory.