가장 일반적인 것은 if-else 문이다.
if (count == 42) {
println("I have the answer.")
} else {
println("The answer eludes me.")
}
일반적인 if문과 다르지 않다.
else if를 사용하여 여러 '조건'을 나타낼 수 있다.
단일 조건문 내에서 더욱 상세하고 복잡한 논리를 표현할 수 있다.
if (count == 42) {
println("I have the answer.")
} else if (count > 35) {
println("The answer is close.")
} else {
println("The answer eludes me.")
}
조건문을 변수화하여 사용성을 높일 수 있다.
val answerString: String = if (count == 42) {
"I have the answer."
} else if (count > 35) {
"The answer is close."
} else {
"The answer eludes me."
}
println(answerString)
answerString에 명시적 유형 선언을 생략할 수 있지만 명확히 하기 위해 유형 선언을 포함하는 것이 좋다.
조건문의 복잡도가 증가하면 if-else 표현식을 when 표현식으로 교체할 수 있다.
when 표현식의 각 분기는 조건, 화살표(->) 및 결과로 표시된다.
val answerString = when {
count == 42 -> "I have the answer."
count > 35 -> "The answer is close."
else -> "The answer eludes me."
}
println(answerString)
val languageName: String? = null
if (languageName != null) {
// No need to write languageName?.toUpperCase()
println(languageName.toUpperCase())
}
조건부 분기 내에서 languageName은 nullable이 아닌 것으로 간주될 수 있다.
Kotlin에서는 분기 실행 조건에 따라 languageName은 null 값을 보유할 수 없으므로 분기 내에서 languageName을 nullable로 처리할 필요가 없다.