표현식으로서의 If
Coddy Kotlin 여정의 기초 섹션에 포함된 레슨. 93개 중 31번째.
if를 인라인으로 사용하여 두 값 중 하나를 선택하는 방법을 살펴보았습니다. 하지만 if-else 블록에 여러 문이 포함되어 있더라도 전체 구조를 표현식으로 사용할 수 있습니다. 각 분기에서 마지막 표현식이 반환되는 값이 됩니다.
fun main() {
val score = 85
val message = if (score >= 60) {
val grade = "passing"
"You got a $grade score!"
} else {
val grade = "failing"
"You got a $grade score."
}
println(message) // 출력: You got a passing score!
}각 분기에는 여러 문이 포함될 수 있지만, 분기의 마지막 표현식이 반환되어 변수에 할당됩니다. 이 경우 각 블록의 마지막 줄에 있는 문자열이 message의 값이 됩니다.
이는 else if 체인에서도 작동합니다:
fun main() {
val temperature = 25
val description = if (temperature > 30) {
"Hot"
} else if (temperature > 20) {
"Warm"
} else {
"Cool"
}
println(description) // 출력: Warm
}if를 표현식으로 사용할 때는 else 분기가 필수입니다. 어떤 조건이 참이더라도 값이 반환되도록 Kotlin이 보장해야 하기 때문입니다.
챌린지
쉬움다음 변수가 주어집니다:
val hours = 45각 분기에서 여러 문을 사용하는 if 표현식을 사용하여 근로자의 급여 상태를 확인하고 메시지를 만드세요.
if 표현식을 사용하여 payStatus 변수를 만드세요:
hours가 40보다 큰 경우:hours - 40과 같은overtime변수를 만드세요.- 마지막 표현식은
"Overtime: $overtime extra hours"여야 합니다.
- 그렇지 않은 경우:
40 - hours와 같은remaining변수를 만드세요.- 마지막 표현식은
"Regular: $remaining hours until overtime"여야 합니다.
payStatus의 값을 출력하세요.
직접 해보기
fun main() {
val hours = 45
// TODO: 아래에 코드를 작성하세요
// if 표현식을 사용하여 payStatus 변수를 만드세요
// hours > 40인 경우: overtime 변수를 만들고 "Overtime: $overtime extra hours"를 반환하세요
// 그렇지 않으면: remaining 변수를 만들고 "Regular: $remaining hours until overtime"를 반환하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드