Kotlin - if expression

Language/Kotlin 2018.07.17 01:12 posted by TechNote.kr


if expression


Kotlin 에서 if는 expression이고, 즉 return 값을 가진다. 따라서 다른 언어에서 볼 수 있는 (condition?then:else)와 같은 ternary operator를 가지고 있지 않다. if 자체가 동일한 역할을 하기 때문이다. 


fun main(args: Array<string>) {
    val a: Int = 1
    val b: Int = 2

// Traditional usage
    var max1: Int = a
    if (a < b) max1 = b
    println("max1 : $max1")

// With else
    var max2: Int
    if (a > b) {
        max2 = a
    } else {
        max2 = b
    }
    println("max2 : $max2")

// As expression
    val max3 = if (a > b) a else b
    println("max3 : $max3")
}

max1 : 2

max2 : 2

max3 : 2 



if 는 block으로 둘러쌓여 표현이 가능하고, 이 때 마지막 expression이 해당 block의 value로 사용된다. 

fun main(args: Array<string>) {
    val a: Int = 1
    val b: Int = 2

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

    println("max : $max")
}

Choose b

max : 2 




참고자료


- expression과 statement의 차이