728x90
반응형
안녕하세요
이번 포스팅은 코틀린에서 제어흐름 두번째인 when에 대해 알아보도록 하겠습니다.
보통 C, C++, Java를 배우면 if문 다음에 switch를 배우게 되는데
코틀린은 when이라는게 있더라구요
사용 방법을 보도록 하겠습니다
val value : Int = 3
// when에 들어가는 조건은 boolean 타입이 아니어도 when구문은 실행이 됩니다.
when(value) {
1 -> println("value is 1")
2 -> println("value is 2")
3 -> println("value is 3")
else -> println("I do not know value")
}
value의 값이 1이면 "value is 1"을, value 값이 3이면 "value is 3"을 출력하는 구조입니다.
위 구문은 if문으로 바꾸면 아래와 같습니다.
if(value == 1) println("value is 1")
else if( value == 2) println("value is 2")
else if(value == 3) println("value is 3")
else println("I do not know value")
값을 초기화하는데 when을 사용할수도 있습니다.
val value2 = when(value) {
1 -> 10
2 -> 20
3 -> 30
else -> 100
}
println(value2)
이렇게 when 구문을 이용하여 값을 초기화 할 수 있습니다.
when에 null이 들어가는 경우도 있습니다.
val value : Int ? = null
이럴 경우에는 when절에서는 null -> {} 에 대해 처리를 해주는 구문이 있어야 합니다.
when(value) {
null -> println("value is null")
else -> println("Value is not null")
}
변수 타입이 Boolean 타입인데, null이 들어가면 변수 값은 false가 될까?
그건 아닙니다. 변수가 null이 들어갈 수 있으면 true, false, null 이 세가지의 경우를 갖게 됩니다.
val value2: Boolean? = null
// when 구문은 조건으로 갖는 값의 모든 경우에 대응해주는 것이 좋다.
when(value2) {
true -> println("")
false -> println("")
null -> println("")
}
값을 리턴해야하는 when 구문의 경우에는 반드시 값을 리턴해야합니다.
val value3 = when(value2) {
true -> 1
false -> 3
else -> 4
}
when 구문 안에서 변수가 어떤 타입인지 확인하는 방법이 있습니다.
when(value) {
is Int -> {}
}
이러한 방식으로 사용하면 됩니다.
val value4 : Int = 10
when(value4) {
is Int -> {
println("value4 is int")
}
else -> {
println("value4 is not int")
}
}
when구문에서는 in을 사용하여 m과 n 사이에 값이 존재하는지 확인할 수 있습니다.
val value5 : Int = 70
when(value5) {
in 60 .. 70 -> {
println("value is in 60-70")
}
in 70..80 -> {
println("value is in 70-80")
}
in 80..90 -> {
println("value is in 80-90")
}
}
728x90
반응형
'모바일 > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 Collection(List, Set, Map) (0) | 2021.03.30 |
---|---|
[Kotlin] 코틀린 배열 (0) | 2021.03.30 |
[Kotlin] 코틀린 제어흐름(1) (0) | 2021.03.28 |
[Kotlin] 코틀린 연산자 (0) | 2021.03.28 |
[Kotlin] 코틀린 메서드(함수) (0) | 2021.03.28 |
댓글