References: Do it! 코틀린 프로그래밍
코틀린에서의 조건문에 대해 알아봅니다.
1. 범위 연산자: in ..
조건문에서 ~이상 ~이하 이런조건은 빈번히 사용됩니다. 아래의 예시를 보겠습니다.
else if(score >= 80.0 && score <= 89.9) { ... ]
80점에서 89.9점까지를 찾는 조건문입니다.
코틀린에선 이러한 포함 여부를 확인할 수 있는 in 연산자와 범위를 지정할 수 있는 .. 연산자를 제공합니다.
위의 코드는 다음과 같이 다시 쓸 수 있습니다.
else if(score in 80.0 .. 89.9) { ... }
2. 조건문 when
if ... else ... 대신 when 조건문을 사용할 수 있습니다. 다른 언어에서의 switch ... case ... 같은 조건문으로 보입니다.
다음 예시를 통해 확인해 봅시다.
when(x) {
0, 1, 2, 3 -> println("x는 0~3 사이.")
5 -> println("x는 5.")
parseInt(str) -> println("함수의 반환값이 일치함.")
in 6..10 -> println("x는 6~10 사이.")
!in 1..10 -> println("x는 1~10 사이에 존재하지 않음.")
else -> println("x는 다른 무언가")
}
parseInt(str)처럼 함수의 반환값이 일치하면 when문에 함수의 반환값을 조건으로 사용할수 도 있습니다.
in 6..10 와 같이 앞서 알아본 범위연산자도 사용할 수 있습니다.
when조건문엔 인자를 뺴고 사용할 수도 있습니다.
이 경우엔 내부 조건에 일치조건 뿐 아니라 다른 조건도 사용할 수 있습니다.
다음 예시를 통해 확인하도록 하겠습니다.
when{
score >= 90.0 -> grade = 'A'
score in 80.0..89.9 -> grade = 'B'
score in 70.0..79.9 -> grade = 'C'
score < 70.0 -> grade = 'F'
}
인자가 있는 when문과 달리 >=와 같은 조건식을 구성할 수 있습니다.
당연하지만 when에 Any클래스도 넣을 수 있습니다.
다양한 자료형의 인자를 받아 각각 다른 결과값을 리턴할 수 도 있습니다.
fun cases(obj: Any){
when(obj){
1 -> println("Int($obj)")
"Hello" -> println("String($obj)")
is Long -> println("Long($obj)")
!is String -> println("Not String")
else -> println("Unknown")
}
}
반응형
'Programming' 카테고리의 다른 글
[Kotlin] 19. 라벨 (0) | 2019.08.23 |
---|---|
[Kotlin] 18. 반복문 (0) | 2019.08.23 |
[Kotlin] 16. 꼬리 재귀 함수 (0) | 2019.08.23 |
[Kotlin] 15. 확장함수와 중위함수 (0) | 2019.08.23 |
[Kotlin] 14. 인라인 함수 (0) | 2019.08.23 |