코틀린에서 조건문 WHEN 은 다른 언어에서 선택문 SWITCH 라고 볼 수 있다
- SWITCH
앞에 나왔던 if 문의 비교 연산자 == 만 사용해서 같은 값인지 비교 하는 조건문
▼ switch 문의 스켈레톤 코드
var variable = /* 값 할당 */;
switch(variable) {
case /* 값1 */:
// 값1에 대한 동작
break;
case /* 값2 */:
// 값2에 대한 동작
break;
// 추가적인 case들
default:
// 기본 동작
}
- WHEN
다른 언어들에서는 대부분 switch 문을 사용하며 선택문이라고도 한다
하지만 코틀린에서는 when 문을 사용하며 switch 와는 다르게 같은 값 뿐만 아니라 범위 값도 처리할 수 있으며 사용 방법또한 더 많다
특정 값을 선택하는 switch + 범위를 비교하는 if = when 문 이라고 볼 수 있다
▼when 문의 스켈레콘 코드
fun main() {
val 변수 = // 변수 초기화
when (파라미터) {
값1 -> {
// 변수가 값1과 일치할 때 수행할 코드
}
값2 -> {
// 변수가 값2와 일치할 때 수행할 코드
}
값3, 값4 -> {
// 변수가 값3 또는 값4와 일치할 때 수행할 코드
}
in 범위1..범위2 -> {
// 변수가 범위1과 범위2 사이의 값일 때 수행할 코드
}
조건식 -> {
// 조건식이 참일 때 수행할 코드
}
else -> {
// 모든 조건과 일치하지 않을 때 수행할 코드
}
}
}
(위의 switch 와는 다르게 'case' 가 없고 ' : ' 가 ' ->(화살표 연산자) ' 로 대체되었다)
1.화살표 연산자 ( -> )로 블록 내부에서 비교할 값을 선택해준다
2.값3, 값4 처럼 두개의 값에 처리가 동일하다면 콤마( , ) 를 통해 한번에 비교할 수 있다
3.또한 in 범위1..범위2 처럼 사용하여 범위값을 비교할 수도 있다. if문의 비교연산자와 같은 기능을 구현 가능하다
4.when 다음에 오는 () 를 생략해서 if 문처럼 사용하는 것도 가능하다▼
fun main () {
var num1 = 10
when {
num1 == 11 -> {
println("이 숫자는 11이다")
}
num1 > 11 -> {
println("이 숫자는 11보다 크다")
}
else -> {
println("이 숫자는 11보다 작다")
}
}
} /* 출력 : 이 숫자는 11보다 작다 */
사용했을 때 좋은 경우 | |
IF | WHEN |
범위 가 넓고 값을 특정할 수 없을때 | 범위가 제한되고 값을 특정할 수 있을때 |
'Kotlin' 카테고리의 다른 글
컬렉션 Collection (List,Map,Set) (0) | 2024.04.08 |
---|---|
배열 Array (0) | 2024.04.07 |
주석처리 (0) | 2024.04.06 |
조건문 IF (0) | 2024.04.05 |
코딩 컨벤션 (Cording Convention) (0) | 2024.04.04 |