ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] 조건문 when
    Kotlin 2022. 9. 14. 15:01
    package days01
    
    fun main(){
        // 코틀린에서 사용하는 자바의 switch에 해당하는 문법
        val a1=10
        when(a1){
            1 -> println("a1은 1이다")
            2 -> {
                println("수행되는 코드")
                println("a1은 2이다")
            }
            30 -> println("a1은 3이다")
            else -> println("a1은 1,2,3이 아니다")
        }
        // switch case와 비슷한 문법. 각 case를 ->로 표시. break 쓰지 않아도 됨
    }

     

        val a2=3
        when(a2){
            1, 2 -> println("a2 is 1 or 2")
            3, 4 -> println("a2 is 3 or 4")
            5, 6 -> println("a2 is 5 or 6")
            else -> println("a2 is not 1, 2, 3, 4, 5, 6")
        } // 컴마로 구분하여 두 가지의 경우를 하나의 case로 처리 가능함
        println()
    
        val a5=5
        when(a5){
            in 1 .. 3 -> println("a5 is 1~3")
            in 4 .. 6 -> println("a5 is 4~6")
            in 1 .. 6 -> println("a5 is 1~6")
            else -> println("a5 is not 1~6")
        } // in 키워드와 .. 연산자를 이용하여 범위를 골라내는 case를 제작할 수 있음

     

        // var a6:String = if(a5==5) "5" else "not 5"
        val a6=20
        val str:String = when(a6){
            10 -> "10"
            20 ->{
                println("두번째 경우")
                "20"
            }
            30 ->"30"
            else ->"not 10~30"
        } // 각 케이스에서 선택된 값을 결과로 반환하여 변수의 값으로 활용할 수 있음
        println("str:$str")

     

    fun main(){
        var str1=setValue(10)
        var str2=setValue(20)
        var str3=setValue(30)
        println("str1:$str1")
        println("str2:$str2")
        println("str3:$str3")
    }
    fun setValue(a1:Int): String=when(a1){
            10 -> "10"
            20 -> "20"
            30 -> "30"
            else -> "not 10~30"
    }  // 함수의 몸체가 when으로 대체되어 선택된 데이터가 함수의 리턴값으로 사용됨
    /*
    fun setValue(a1:Int): String{
        val str:String = when(a1){
            10 -> "10"
            20 -> "20"
            30 -> "30"
            else -> "not 10~30"
        }
        return str
    }
     */
     

    월과 일을 입력받아서 요일을 출력

    package days01
    
    fun main(){
        // 2022년에 한해서 입력
        // 2022년 1월 1일은 토요일. 상대적 위치의 값으로 요일 선택
    
        print("월 입력: ")
        val month:Int=readLine()!!.toInt()
        print("일 입력: ")
        val day:Int=readLine()!!.toInt()
    
        var days:Int=sumdays(month) // 1월부터 입력한 월의 전달까지 날짜수 계산하는 함수 제작
        days += day
        val temp:Int=days%7
    
        val weekday:String=selectWeekday(temp) // 총 날짜를 7로 나눈 나머지로 요일을 계산하는 함수 제작
        println(weekday)
    }
    
    fun sumdays(days:Int): Int=when(days){
        1 -> 0
        2 -> 31
        3 -> 31 + 28
        4 -> 31 + 28 + 31
        5 -> 31 + 28 + 31 + 30
        6 -> 31 + 28 + 31 + 30 + 31
        7 -> 31 + 28 + 31 + 30 + 31 + 30
        8 -> 31 + 28 + 31 + 30 + 31 + 30 + 31
        9 -> 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31
        10 -> 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30
        11 -> 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31
        12 -> 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30
        else -> 0
    }
    
    fun selectWeekday(temp: Int):String=when(temp) {
        0 -> "금"
        1 -> "토"
        2 -> "일"
        3 -> "월"
        4 -> "화"
        5 -> "수"
        6 -> "목"
        else -> "잘못된 연산"
    }

    'Kotlin' 카테고리의 다른 글

    [Kotlin] 익명함수  (0) 2022.09.14
    [Kotlin] 람다함수  (0) 2022.09.14
    [Kotlin] 조건문 if  (0) 2022.09.14
    [Kotlin] 연산  (0) 2022.09.14
    [Kotlin] 함수  (0) 2022.09.14

    댓글

Designed by Tistory.