본문 바로가기
Kotlin

조건문 WHEN

by 코드닭 2024. 4. 6.

코틀린에서 조건문 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