삼항 연산자가 없는 코틀린

sanghoon·2020년 12월 11일
1

C++과 JAVA 등에서 나타나는 삼항 연산자(condition ? then : else)는 조건문을 이용한 참, 거짓에 따른 값 반환 시 코드를 단축시켜준다는 장점이 있습니다.

// c++
int max1;
if (a > b) {max1 = a;}
else {max1 = b;}

int max2 = a > b ? a : b; // max1 == max2

그러나 코틀린은 삼항 연산자를 제공하지 않습니다. if와 else가 표현식(expression)이기 때문입니다. 이는 if와 else가 특정 값을 반환한다는 것을 의미합니다. 따라서 삼항 연산자를 사용하지 않고도 간단히 코드를 구성할 수 있습니다.

// kotlin
// Traditional usage 
var max = a 
if (a < b) max = b

// With else 
var max: Int
if (a > b) {
    max = a
} else {
    max = b
}
 
// As expression 
val max = if (a > b) a else b

만약 if와 else가 값을 반환하기 전에 어떤 연산을 수행하고 싶다면 {}를 구성해 반환값을 맨 아래에 넣고, 그 위에 코드를 넣으면 됩니다.

val max = if (a > b) {
    print("Choose a")
    a
} else {
    print("Choose b")
    b
}

이 글은 코틀린 공식문서 Control Flow: if, when, for, while을 참고하여 작성되었습니다.

0개의 댓글