fun main() {
var a = 7;
if (a > 10){
println(a.toString() + " is bigger then 10")
} else {
println(a.toString() + " is smaller then 10")
}
}
java 와 같다.
다른 언어에서 switch에 해당하는 기능이다.
fun doWhen(a: Any) {
when(a) {
1 -> println("정수 1입니다")
"yebali" -> println("yebali 입니다")
is Int -> println("Int타입 입니다")
!is Int -> println("Int 타입이 아닙니다")
else -> println("어떤 조건에도 속하지 않습니다")
}
}
fun main() {
var a = 1
doWhen(a)
}
조건들을 검사하며 첫번째로 부합하는 조건에 해당하는 코드를 실행하고 when함수는 종료된다.
등호나 부등호의 사용은 불가능 하다.
참고로 Any는 어떤 자료형과도 호환이 가능한 최상위 자료형.
when에서 조건이 맞을 때 동작 대신 값을 반환하면 표현식으로 사용하고 싶다면 아래처럼 사용 할 수 있다.
위의 코드를 예시로 들면 println()이라는 동작 대신 값을 써주면 된다.
fun doWhen(a: Any) {
var result = when(a) {
1 -> "정수 1입니다"
"yebali" -> "yebali 입니다"
is Int -> "Int타입 입니다"
!is Int -> "Int 타입이 아닙니다"
else -> "어떤 조건에도 속하지 않습니다"
}
println(result)
}
fun main() {
var a = 1
doWhen(a)
}