조건문 (if, else, when) - swkim0128/PARA GitHub Wiki
if-else는 조건에 따라 코드를 실행하거나 다른 경로를 선택할 수 있도록 합니다. 코틀린의 if 문은 표현식으로 사용할 수 있어 값을 반환합니다.
if (조건) {
// 조건이 참일 때 실행_
} else {
// 조건이 거짓일 때 실행_
}
fun main() {
val num = 10
if (num > 0) {
println("Positive number")
} else if (num == 0) {
println("Zero")
} else {
println("Negative number")
}
}
if 문을 표현식으로 사용하여 값을 반환할 수 있습니다.
fun main() {
val num = 10
val result = if (num > 0) {
"Positive"
} else {
"Negative"
}
println(result) _// 출력: Positive_
}
중괄호 {}는 단일 구문일 경우 생략할 수 있습니다.
val num = 5
if (num % 2 == 0) println("Even") else println("Odd")
when은 자바의 switch 문과 유사하며, 더 강력하고 간결한 조건문입니다. 단일 값, 범위, 타입 등 다양한 조건을 처리할 수 있습니다.
when (값) {
조건1 -> 실행할 코드
조건2 -> 실행할 코드
else -> 실행할 코드 (기본값, 생략 가능)
}
fun main() {
val num = 2
when (num) {
1 -> println("One")
2 -> println("Two")
3 -> println("Three")
else -> println("Other")
}
}
in 키워드를 사용하여 값이 특정 범위에 속하는지 확인할 수 있습니다.
fun main() {
val num = 15
when (num) {
in 1..10 -> println("1부터 10 사이의 숫자")
in 11..20 -> println("11부터 20 사이의 숫자")
else -> println("20 이상의 숫자")
}
}
쉼표(,)로 조건을 나열하여 동일한 결과를 처리할 수 있습니다.
fun main() {
val num = 2
when (num) {
1, 3, 5, 7, 9 -> println("Odd number")
2, 4, 6, 8, 10 -> println("Even number")
else -> println("Not between 1 and 10")
}
}
is 키워드를 사용하여 값의 타입을 검사할 수 있습니다.
fun main() {
val value: Any = "Hello"
when (value) {
is String -> println("It is a String with length ${value.length}")
is Int -> println("It is an Integer")
else -> println("Unknown type")
}
}
when도 if와 마찬가지로 값을 반환할 수 있습니다.
fun main() {
val num = 3
val result = when (num) {
1 -> "One"
2 -> "Two"
else -> "Unknown"
}
println(result) // 출력: Unknown
}
특징 | if-else | when |
---|---|---|
사용 용도 | 간단한 조건 처리 | 여러 조건 처리, 값에 따른 분기 |
표현식 사용 여부 | 가능 | 가능 |
복잡한 조건 처리 | 어려움 | 다양한 조건(값, 범위, 타입) 처리 가능 |
- if-else
- 간단한 조건을 처리하거나 표현식으로 값을 반환할 때 사용.
- 중첩 조건이 많아질수록 코드가 복잡해질 수 있음.
- when
- 다중 조건을 처리하거나 값, 범위, 타입에 따라 분기할 때 사용.
- 간결하고 가독성이 뛰어나며 switch 문보다 강력함.
코틀린에서는 상황에 따라 if-else와 when을 적절히 활용하여 코드의 가독성과 효율성을 높일 수 있습니다.