카테고리 없음
코틀린 if, when, Any 타입과 when으로 데이터 자료형 확인하기
slowbooktech
2022. 5. 13. 13:05
1. if
다른 언어들과 동일하다.
if ( 조건) {
실행할 코드
}
else if ( a>b ) {
println( a )
}
else { }
2. when
다른 언어들의 switch 와 유사하다.
when ( 기준값 ) {
특정 기준값 -> 실행코드
in 여러 기준값 범위 -> 실행코드
in 끝범위 downTo 시작범위 -> 실행코드
else 남은 범위
}
package com.example.udemy3_operator_when
fun main(){
var time = 1
when (time){
24, 1-> println("midnight")
in 1..6 -> println("dawn")
in 7..11 -> println("morning")
in 23 downTo 9-> println("we should have launch, work and have dinner")
else -> println("try to sleep")
}
}
ㅣ코드 실행 결과
time이 1, 7, 14 인 경우
3. any , type
when 에는 변수의 타입을 기준값으로 삼을 수 있는 boolean 형태의 문법이 있는데, is + 자료형이 바로 그것이다.
var type : Any = 32
when (type){
is Int -> println("$type is an Integer number")
!is Double-> println("$type is not an integer, and not a double number")
else -> println("i have no idea")
}
이때 type 이라는 개발자 지정 변수의 타입은 any 로 어떤 타입이든 가능했다가, 32를 넣음으로서 int 가 된다.
첫 줄에서 is Int 를 통해 정수형인지 물어봤고 맞으므로 바로 출력된다. 따라서 두번째에 double이 아닌 조건도 충족되지만 when 의 특성상 순차적으로 코듯가 실행되어 첫번째 조건으로 코드 실행이 끝나면 나머지 조건들은 검토하지 않아 if 와 동일한 속성을 보인다.
ㅣ 코드 실행 결과