minstudio

4. 조건문과 제어 흐름 (if, when)

코틀린에서 ifwhen은 문장(Statement)이 아니라 표현식(Expression)으로 사용할 수 있습니다. 즉, 조건문의 결과를 변수에 바로 대입할 수 있습니다.

또한 자바의 switch문은 코틀린에서 when으로 진화했습니다. break가 필요 없고, 다양한 조건을 유연하게 검사할 수 있어 가독성이 압도적으로 좋습니다.

fun main() {
    // 1. 표현식으로서의 if
    val a = 10
    val b = 20
    // if의 결과(마지막 줄)가 그대로 변수에 대입됩니다! (삼항 연산자 역할)
    val max = if (a > b) {
        println("a가 큽니다.")
        a
    } else {
        println("b가 크거나 같습니다.")
        b
    }
    println("최대값: $max")

    // 2. 강력한 when 표현식 (switch 대체)
    val score = 85
    val grade = when {
        score >= 90 -> "A" // 조건 -> 결과
        score >= 80 -> "B"
        score >= 70 -> "C"
        else -> "F" // 모든 경우를 커버하지 않으면 컴파일 에러 발생(안전함)
    }
    println("당신의 학점은 $grade 입니다.")

    // 값 매칭도 쉽게 가능합니다.
    val obj: Any = "Hello"
    when (obj) {
        1 -> println("숫자 1입니다.")
        "Hello" -> println("인삿말입니다.")
        is String -> println("문자열 타입입니다.")
        else -> println("기타 등등")
    }
}
4. 조건문과 제어 흐름 (if, when) | Minstudio