Kotlin :: 표현식으로 if else 사용하기

Android/Kotlin 2020.10.15 댓글 moonsu
728x90

코틀린에서는 if-else문을 표현식으로도 사용할 수 있다.

fun main(args: Array<String>): Unit {
    val result: Int = if( 1 > 0 ) {
        println("큰 값은 1")
        1
    } else {
        println("큰 값은 0")
        0
    }
    
    println(result)
}
// 큰 값은 1
// 1

Int 타입의 변수 result 에 if문을 대입하고 있다. if가 참이라면 if 블록 내의 마지막 표현식인 1이 result의 값으로 반환된다. 반대로 거짓이라면 else 블록 내의 마지막 표현식인 0이 반환된다.

 

이 때 if 와 else 블록의 표현식은 타입이 일치해야한다. if 의 마지막 표현식 타입이 Int 였다면 else 도 마찬가지로 Int 여야 한다. 그렇다면 아래와 같이 마지막 문장이 표현식이 아닌 경우를 보자

fun main(args: Array<String>): Unit {
    val result: Int = if( 1 > 0 ) {
        println("큰 값은 1")
    } else {
        println("큰 값은 0")
    }
    
    println(result)
}
// 큰 값은 1
// ?????

이런 경우 if else 표현식이 Unit 타입이 되며, 아무 의미 없는 값이 저장된다. 따라서 if else를 변수에 대입할 때 마지막 문장은 반드시 표현식이어야 한다.

728x90
반응형

댓글