-
[Kotlin] 조건문 whenKotlin 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