반응형
Kotlin에서 if
문과 when
문은 조건에 따라 코드를 실행하기 위한 두 가지 주요 방법입니다. 두 문 모두 특정 조건에 따라 프로그램의 흐름을 제어하지만, 사용 상황과 조건에 따라 어느 문을 사용할지 결정하는 몇 가지 기준이 있습니다. 아래에서 if
문과 when
문을 사용하는 조건과 각각의 사용 사례에 대해 자세히 설명하겠습니다.
if
문 사용 조건
if
문은 단순한 조건 검사와 특정 조건이 참인지를 확인할 때 가장 많이 사용됩니다. 주로 하나 또는 두 개의 조건을 평가하는 경우에 적합합니다.
사용 조건:
- 단순 조건:
- 한두 개의 조건을 평가하고, 참 또는 거짓에 따라 코드 블록을 실행할 때 적합합니다.
val age = 18
if (age >= 18) {
println("You are an adult.")
} else {
println("You are a minor.")
}
- 연속된 조건 평가:
- 여러 조건을 순차적으로 평가하고, 첫 번째로 참인 조건의 블록을 실행할 때 사용합니다.
val temperature = 30
if (temperature > 30) {
println("It's hot.")
} else if (temperature < 10) {
println("It's cold.")
} else {
println("It's moderate.")
}
- 표현식으로 사용:
- 조건 평가의 결과를 변수에 할당하고 싶을 때 사용합니다.
if
문을 표현식으로 사용하면 더 간결한 코드 작성을 도와줍니다.
- 조건 평가의 결과를 변수에 할당하고 싶을 때 사용합니다.
val a = 5
val b = 10
val max = if (a > b) a else b
println("The maximum value is $max") // 출력: The maximum value is 10
사용 예제:
fun main() {
val number = 7
// 단순한 조건 검사
if (number % 2 == 0) {
println("$number is even")
} else {
println("$number is odd")
}
// 연속된 조건 평가
val grade = 85
val letterGrade = if (grade >= 90) {
"A"
} else if (grade >= 80) {
"B"
} else if (grade >= 70) {
"C"
} else if (grade >= 60) {
"D"
} else {
"F"
}
println("Your grade is $letterGrade") // 출력: Your grade is B
}
when
문 사용 조건
when
문은 여러 개의 조건을 검사하고, 그 중 하나가 참일 때 특정 블록을 실행하는 데 적합합니다. when
문은 다양한 상황에서 여러 조건을 간단하게 처리할 수 있는 강력한 도구입니다.
사용 조건:
- 여러 조건 처리:
- 하나의 변수를 여러 값과 비교할 때 적합합니다.
switch
문과 비슷한 용도로 사용됩니다.
- 하나의 변수를 여러 값과 비교할 때 적합합니다.
val dayOfWeek = 3
val dayName = when (dayOfWeek) {
1 -> "Sunday"
2 -> "Monday"
3 -> "Tuesday"
4 -> "Wednesday"
5 -> "Thursday"
6 -> "Friday"
7 -> "Saturday"
else -> "Invalid day"
}
println("Day of the week: $dayName") // 출력: Day of the week: Tuesday
- 복잡한 조건 표현:
- 특정 값에 대한 비교 외에도, 범위, 타입 검사, 복잡한 논리 표현식 등을 처리할 때 적합합니다.
val score = 85
val grade = when {
score >= 90 -> "A"
score >= 80 -> "B"
score >= 70 -> "C"
score >= 60 -> "D"
else -> "F"
}
println("Grade: $grade") // 출력: Grade: B
- 표현식으로 사용:
- 여러 조건 중 하나가 참일 때 값을 반환하여 변수에 할당하고 싶을 때 사용합니다.
val number = 10
val parity = when {
number % 2 == 0 -> "even"
else -> "odd"
}
println("The number is $parity") // 출력: The number is even
- 타입 검사와 스마트 캐스팅:
- 변수가 특정 타입인지 검사하고, 그 타입에 대해 적절한 처리를 할 때 사용합니다.
fun describe(obj: Any): String =
when (obj) {
is Int -> "An integer"
is String -> "A string of length ${obj.length}"
is Boolean -> "A boolean value"
else -> "Unknown type"
}
println(describe(42)) // 출력: An integer
println(describe("Kotlin")) // 출력: A string of length 6
println(describe(true)) // 출력: A boolean value
사용 예제:
fun main() {
val animal = "dog"
// 여러 조건 처리
val sound = when (animal) {
"dog" -> "bark"
"cat" -> "meow"
"cow" -> "moo"
else -> "unknown sound"
}
println("A $animal makes $sound sound") // 출력: A dog makes bark sound
// 복잡한 조건 표현
val number = 10
val description = when {
number % 2 == 0 && number > 0 -> "positive even"
number % 2 == 0 && number < 0 -> "negative even"
number % 2 != 0 && number > 0 -> "positive odd"
number % 2 != 0 && number < 0 -> "negative odd"
else -> "zero"
}
println("The number is $description") // 출력: The number is positive even
}
요약
if
문: 단순한 조건을 검사하거나 연속된 조건을 평가할 때 적합합니다. 조건 평가 결과를 변수에 할당하는 표현식으로 사용할 수 있습니다.when
문: 여러 조건을 간단하게 처리하거나, 특정 값에 대한 비교 외에도 복잡한 조건 표현, 타입 검사, 논리적 비교 등을 할 때 유용합니다.switch
문과 비슷한 용도로 사용되지만 더 유연하고 강력한 기능을 제공합니다.
따라서, 간단한 조건을 처리할 때는 if
문을 사용하고, 다양한 경우를 처리하거나 보다 복잡한 조건을 평가해야 할 때는 when
문을 사용하는 것이 좋습니다.
반응형
'언어 > Kotlin' 카테고리의 다른 글
[ Kotlin ] 코틀린을 간단하게 시작해자. Hello Kotlin! (0) | 2024.06.12 |
---|---|
[ Kotlin ] 따라하면서 조건문에 대해서 이해하자. (0) | 2024.06.12 |
[ Kotlin ] 따라하면서 Kotlin 의 Coding Convention을 이해하자. (0) | 2024.06.12 |
[ Kotlin ] 따라하면서 컬렉션 데이터 타입에 대해서 이해하자. (1) | 2024.06.12 |
[ Kotlin ] 데이터 타입의 종류는 어떤 것이 있는 알아보자. (0) | 2024.06.12 |