
var a:Int = 1
var test:Bool = a == 1 ? true : false
// var test:Bool = (a == 1) ? true : false 괄호를 생략하지 않으면 가독성이 더 좋다.
결과 : true
즉, 삼항 연산자는 변수 선언 + if ~ else 구문 2가지를 한 줄로 쓸 수 있는 간편한 방법이다.
var num1:Int = 10
var num2:Int = 12
var largeNum:Int
if num1 > num2 {
largeNum = num1
} else {
largeNum = num2
}
print(largeNum)
결과 : 12
이것을 삼항 연산자로 바꾸면
var num1:Int = 10
var num2:Int = 12
var largeNum:Int = num1 > num2 ? num1 : num2
print(largeNum)
결과 : 12
조건의 결과가 3가지인 경우도 가능하다.
var height:Int = 165
var message:String
if height >= 170 {
message = "키가 170 이상입니다."
} else if height < 160 {
message = "키가 160 미만입니다."
} else {
message = "키가 160 이상, 170 미만입니다."
}
print(message)
결과 : 키가 160 이상, 170 미만입니다.
이것을 삼항 연산자로 바꾸면
var height:Int = 165
var message:String = height >= 160 ? height >= 170 ? "키가 170 이상입니다." : "키가 160 이상, 170 미만입니다." : "키가 160 미만입니다."
print(message)
결과 : 키가 160 이상, 170 미만입니다.
위 삼항 연산자의 경우 그 위에 있는 if ~ else if ~ else 와는 알고리즘이 다르다... true(true, false), false 로직이다... 만약 이것을 if ~ else 구문으로 동일하게 바꾸면 아래와 같다.
var height:Int = 165
var message:String
if height >= 160 {
if height >= 170 {
message = "키가 170 이상입니다."
} else {
message = "키가 160 이상, 170 미만입니다."
}
} else {
message = "키가 160 미만입니다."
}
print(message)
'개발자 > Swift' 카테고리의 다른 글
Swift 관련 사이트 및 정보 모음 (0) | 2021.02.02 |
---|---|
Swift (스위프트) Closures 활용한 Sort (0) | 2020.06.21 |
Swift (스위프트) Firebase 로그인 연동 (0) | 2020.06.03 |
Swift (스위프트) 네이버 OpenAPI 이용해 검색하기 (0) | 2020.05.19 |
Swift (스위프트) Annotation (0) | 2020.05.19 |