Archives
Recent Posts
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[12일차 Kotlin] When 본문

Computer/Kotlin

[12일차 Kotlin] When

Wise-99 2023. 5. 12. 18:12

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 when이란?

  • when은 Java에서의 switch case와 비슷하다.
  • 수식이나 값의 결과에 따라 수행될 부분을 결정하게 되며 자바와 다르게 정수 뿐만 아니라 다양한 타입의 값을 비교할 수 있다.

 

📖 when 기본 형식

when (변수 or 수식) {
	값1 -> 코드
	값2 -> 코드
}

 

📖 예제 코드

fun main() {
    val a1 = 10

    when(a1){
        1 -> println("a1은 1입니다")  // 수행될 코드가 한줄만 있다면 { }를 생략한다.
        
        5 -> {						// 수행할 코드가 두 줄 이상이면 { }로 묶어준다.
            println("a1은 5입니다")
            println("코드가 두 줄")
            println("코드가 세 줄")
        }
        10 -> println("a1은 10입니다")
        else -> println("a1은 1, 5, 10이 아닙니다")
    }

    // 두 가지 이상의 조건을 만족하는 것도 설정이 가능하다.
    val a2 = 3
    when(a2){
        1, 2 -> println("a2는 1이거나 2입니다")
        3, 4 -> println("a2는 3이거나 4입니다")
        5, 6 -> println("a2는 5이거나 6입니다")
        else -> println("a2는 1, 2, 3, 4, 5, 6이 아닙니다")
    }

    // 논리값은 허용되지 않는다.
    val a5 = true
    when(a5){ <<< 오류 발생
 
    }

    // 범위 지정
    val a5 = 5
    when(a5){
        in 1..3 -> println("a5는 1부터 3사이입니다")
        in 4..6 -> println("a5는 4부터 6사이입니다")
        in 1..6 -> println("a5는 1부터 6사이입니다")
        else -> println("a5는 1 ~ 6사이의 숫자가 아닙니다")
    }

    val str1 = setValue1(1) 
    val str2 = setValue1(2) 
    val str3 = setValue1(3) 
    println("str1 : $str1") // 문자열1
    println("str2 : $str2") // 문자열2
    println("str3 : $str3") // 그 외의 문자열

    val str4 = setValue2(1)
    val str5 = setValue2(2)
    val str6 = setValue2(3)
    println("str4 : $str4") // 문자열1
    println("str5 : $str5") // 문자열2
    println("str6 : $str6") // 그 외의 문자열
}

fun setValue1(a1:Int) : String{
    if(a1 == 1){
        return "문자열1"
    } else if(a1 == 2){
        println("두 번째 경의 수")
        return "문자열2"
    } else {
        return "그 외의 문자열"
    }
}

// when 사용
// when에 설정한 변수의 값에 따라서 해당 부분에 제일 마지막에 작성한 값을 반환한다.
fun setValue2(a1:Int) = when(a1){
    1 -> "문자열1"
    2 -> {
        println("두 번째 경우의 수")
        "문자열2"
    }
    else -> "그 외의 문자열"
}

'Computer > Kotlin' 카테고리의 다른 글

[13일차 Kotlin] 객체지향 프로그래밍  (0) 2023.05.14
[12일차 Kotlin] 반복문(Loop)  (0) 2023.05.12
[12일차 Kotlin] 제어문  (0) 2023.05.12
[12일차 Kotlin] 함수  (0) 2023.05.12
[12일차 Kotlin] 변수와 자료형  (0) 2023.05.11