Kotlin (코틀린)
Kotlin in A..Z (11) - when
강태종
2020. 7. 15. 09:03
when문
when(인자) {
표현식1 -> 코드
표현식2 -> 코드
표현식3 -> 코드
else -> 코드
}
다른 언어의 switch문과 비슷하다
else if문을 간단하게 표현할 수 있다. 인자와 표현식의 결과가 같으면 해당하는 코드를 실행한다.
코드
val x = 1
when(x) {
1 -> println("x is 1")
2 -> println("x is 2")
else -> { // 여러줄의 코드가 필요하면 블록을 사용하여 표현할 수 있다.
println("================")
println("x is not 1 and 2")
println("================")
}
}
결과
x is 1
when 일치되는 조건을 한번에 표현하기
일치되는 조건을 , 를 사용하여 한번에 표현할 수 있다.
코드
val x = 1
when(x) {
1, 2 -> println("x is 1 or 2")
else -> { // 여러줄의 코드가 필요하면 블록을 사용하여 표현할 수 있다.
println("================")
println("x is not 1 and 2")
println("================")
}
}
결과
x is 1 or 2
when문에 함수의 반환값 사용하기
val number = 10
val input1 = readLine()
val input2 = readLine()
when(number) {
input1!!.toInt() -> {
println("number is input1")
}
input2!!.toInt() -> {
println("number is input2")
}
else -> {
println("else")
}
}
when문에 in과 범위 연산자 사용하기
코드
val number = 10
when(number) {
in 1..10 -> {
println("1 <= number <= 10")
}
else -> {
println("number < 1, number > 10")
}
}
결과
1 <= number <= 10
when문에 is키워드 사용하기
코드
fun checkType(variable: Any) {
when(variable) {
is Int -> {
println("Type is Int")
}
is String -> {
println("Type is String")
}
else -> {
println("Unknown Type")
}
}
}
fun main() {
checkType("개발일지")
}
결과
Type is String
인자가 없는 when문
코드
val number = 1
when {
number == 1 -> println("Number is 1")
number == 2 -> println("Number is 2")
}
결과
Number is 1
간단한 when문
when문을 통해 간단하게 값을 반환할 수 있다. 이러한 경우 else는 필수이다.
val num1 = 1
val num2 = when(num1) {
1 -> {
1
}
2 -> {
4
}
else -> {
100
}
}