if


//if
if 조건 {
    //조건이 true일때 실행
}

//if-else
if 조건 {
    //조건이 true일때 실행
} else {
    //조건이 false일때 실행
}

//if-else if-else
if 조건1 {
    //조건1이 true일때 실행
} else if 조건2 {
    //조건1이 false이고 조건2가 true일때 실행
} else if 조건3 {
    //조건1,2가 false이고 조건3이 true일때 실행
} else {
    //모든 조건이 false일때 실행
}

문자열의 비교 : 문자열 맨 앞부터 비교, 알파벳 순서로 뒤에 오는 것이 더 큼.
열거형의 비교 : 열거형의 경우 Comparable 프로토콜을 사용하면 서로 비교가 가능하다. 열거형 정의 시 맨 앞 케이스가 제일 작고, 나중에 정의할수록 커진다.

enum Weekday: Comparable {
    case MONDAY
    case TUESDAY
    case WEDNESDAY
    case THURSDAY
    case FRIDAY
}


print(Weekday.MONDAY > Weekday.TUESDAY)

< , > , == , != , <= , >= 연산자
&& (AND 연산자), ||(OR 연산자)

switch

switch  {
    case 식1:
        구문1
    case 식2:
        구문2
    case 식3:
        구문3
    ...
    case 식n:
        구문n
    default:
        //모든case가 일치하지 않을 때 실행
}

각 case는 적어도 하나의 실행 가능한 구문을 가져야 한다.
C, Java에서는 case 다음 바로 case문을 작성해도 실행 가능했지만, Swift에서는 불가능하다.

let s = "A"

switch s {
    case "a":   //case가 실행 가능한 구문을 하나도 가지고 있지 않기 때문에 오류이다.
    case "A":
        print("Apple")
    default:
        print("None")
}

swift의 switch-case는 기본적으로 조건에 맞는 case 내의 구문들만 실행하고 빠져나온다.
(Java나 C같은 경우 break를 사용하지 않으면 조건에 맞는 case부터 하위의 case까지 계속해서 실행되는 것과 반대)

default는 필수이다.

계속해서 문장을 실행하고 싶다면 키워드 fallthrough를 사용한다.

let count = 5
print("카운트다운 시작")

switch count {
case 5:
    print("5초")
    fallthrough
case 4:
    print("4초")
    fallthrough
case 3:
    print("3초")
    fallthrough
case 2:
    print("2초")
    fallthrough
case 1:
    print("1초")
    fallthrough
default:
    print("발사")
}

>> 카운트다운 시작
5
4
3
2
1
발사

삼항 조건 연산자

평가식 ? true일 때 리턴되는 값 : false일 때 리턴되는 값

리턴되는 값을 대입연산자를 사용하여 변수에 할당할 수 있다.

let l1 = 1 > 2 ? true : false

WTF : What, True, False
What: 1>2
True: true
False: false

if-else문같은 경우 삼항 연산자 사용을 고려해볼 것.

삼항 조건 연산자는 두 개의 선택지가 있는 if-else문을 짧게 구현한다는 점에서 장점이 있지만,
사람에 따라 코드의 흐름을 따라가지 못할 가능성이 있음(코드를 읽기 어려울 가능성이 있음)


참고: https://www.hackingwithswift.com/100/swiftui/5

카테고리:

업데이트: