안드로이드 네이티브 앱 개발 공부를 위해 Kotlin의 기본적이면서도 중요한 문법들을 정리해보았다. 이 글은 조건부에 관련된 내용이다.
Kotlin은 조건부 논리를 구현하기 위한 몇 가지 메커니즘을 제공한다.
if 키워드 옆의 괄호 안에 포함된 표현식이 true로 평가되는 경우, 해당 분기 내 코드(즉, 중괄호 안에 포함된 바로 다음 코드)가 실행된다. 그렇지 않은 경우 else 분기 내 코드가 실행된다.
if (count == 42) {
println("I have the answer.")
} else {
println("The answer eludes me.")
}
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.")
}
조건문은 Stateful 논리를 나타내는 데 유용하지만 작성 시 반복될 수 있다. 위의 예에서는 각 분기에 String을 출력한다. 이러한 출력의 반복을 피하기 위해 Kotlin은 조건식을 제공합니다.
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)
조건문의 복잡도가 증가하면 if-else 표현식보다 when 표현식으로 작성할 수도 있다.
val answerString = when {
count == 42 -> "I have the answer."
count > 35 -> "The answer is close."
else -> "The answer eludes me." // else가 반드시 필요!!
}
println(answerString)
when 표현식은 위와 같이 값을 리턴하여 변수에 저장하는 것 말고 기본적으로 조건문으로도 사용이 가능하다.
var num = 1
when(num) {
1 -> println("num is 1")
2 -> println("num is 2")
3, 4 -> println("num is 3 or 4")
else -> println("num is big") // else가 없어도 됨
}
when 표현식에서 ..을 사용하여 조건을 나타내는 것도 가능하다.
var score = 72
when(score) {
90..100 -> println("A") // 90 <= score <= 100
80..89 -> println("B") // 80 <= score <= 89
70..79 -> println("C") // 70 <= score <= 79
60..69 -> println("D") // 60 <= score <= 69
else -> println("F") // else가 없어도 됨
}
조건부는 if-else는 다른 언어들도 비슷하고 when은 while문과 유사하기 때문에 어렵지 않게 정리하였다. 원래 조건부와 반복문을 하나의 글로 작성할 생각이었는데 반복문은 배열에 대해 정리한 뒤에 작성하는 것이 좋을 것 같아서 따로 하기로 했다ㅎㅎ 그래서 아마 다음 Kotlin 기본 문법 정리는 array와 list가 될거 같음...