-
[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/
반응형'Front-End(Mobile) > iOS & Swift' 카테고리의 다른 글
[Swift] Swift 문법 (5) - 반복문(for, while) (0) 2022.01.27 [Swift] Swift 문법 (4) - Function(함수) (0) 2022.01.22 [Swift] Swift 문법 - (3) Class(클래스) & Struct(구조체) (0) 2022.01.13 [Swift] Swift 문법 - (2) Types (0) 2022.01.11 [Swift] Swift 문법 - (1) Variables, Constans (0) 2022.01.05