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)

 

 

 

+ Recent posts