티스토리 뷰

조건문은 조건에 따라 코드의 실행 여부를 판단하는 제어문입니다.

Swift에서 제공되는 조건문으로는 어떤 것들이 있는지 확인해봅시다!


 

1. If ~ else 문

if문 옆에 있는 조건이 참이라면 if 문 내부를 실행, 거짓이라면 else 문 내부를 실행하는 조건문입니다.

조건은 반드시 Boolean 타입이어야 합니다. (true or false)

if 문 옆에 괄호가 따로 없다는 점을 제외하고는 C언어와 사용 방식은 같습니다.

//예)

let question = 5 > 10

if question {

    // 조건이 만족할 경우 수행

    print("하이")

}

else {

    // 조건이 만족하지 않을 경우 수행

    print("바이")

}

위의 예는 question 이란 bool 타입의 변수가 false(거짓)의 값을 갖고 있기 때문에, else 문에 있는 "바이"가 출력됩니다.

 

2. Switch 문

기본적으로, Switch문 옆에 있는 변수/상수가 어떤 값을 가지는지에 따라 실행될 case문을 선택하게 됩니다.

각 상태는 case를 통해 나타낼 수 있고 : (콜론)으로 마무리 후 밑의 줄에 실행될 코드를 작성합니다.

변수/상수의 값이 위의 case들의 값과 모두 맞지 않다면 default의 실행문이 실행됩니다.

case 옆의 값을, (쉼표)를 통해 여러 개 지정하는 것도 가능합니다. ex) case "a", "b":

//예)

let food = "pizza"

switch food {

case "ramen":

    print("라면먹자")

case "chicken", "coke":

    print("치킨아니면 콜라먹자")

case "pizza":

    print("피자먹자")

default:

    print("굶자")

}

food라는 변수/상수에 "pizza"라는 값이 들어가 있기 때문에 case "pizza"문 안의 내용이 실행되어 "피자 먹자"가 출력됩니다.

만약, food의 값 이 어떤 case에도 포함되지 않는 경우, default에 있는 값이 실행되어 "굶자"가 출력됩니다.

 

2-1. Switch + Where 문

Swift에서는 다양한 Switch문의 기능이 존재합니다. 그중 하나인 Where 문입니다.

Switch문 내 case에서 if문 같이 조건을 추가로 달아 줄 수 있는 기능입니다.

//예)

let number = 10

switch number {

case _ where number%2 == 0: // _(underscore)은 따로 값을 할당하지 않을 경우 사용

    print("짝수")

default:

    print("홀수")

}

변수/상수의 값을 2로 나눈 나머지가 0일 경우 case 문을 실행한다는 조건을 where 문을 통해 추가하였습니다.

실행하게 되면 변수의 값은 10이기 때문에 "짝수"가 출력됩니다.

 

2-2. Switch + Tuple 데이터

Switch 문으로 Tuple 데이터를 제어할 수도 있습니다.

case 값에 Tuple 데이터를 넣어서 변수 값과 같다면 마찬가지로 실행시킵니다.

여기서_(underscore)는 어떤 값이든 상관없다는 뜻입니다. 

그리고 마지막 case와 같이 Tuple 데이터에 들어오는 Tuple 값을 변수에 받아서 조건 검사를 할 수 있습니다.

 

//예)

let tuple = (x: 4, y: 6)

switch tuple {

case (0 , 0):

    print("둘다 0")

case (_, 0):

    print("y는 0")

case (0, _):

    print("x는 0")

case (let x, let y) where x<y:

    print("(\(x),\(y))")

default:

    print("어딘가")

}

 

다음의 경우엔 tuple 변수/상수 값이 x < y를 만족하기 때문에 "(4,6)"이라는 값이 출력됩니다.

 

Reference :

패스트캠퍼스 iOS 앱 개발 올인원 패키지

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함