728x90
코틀린에는 when이라는 함수가 있다. 이번에는 when에 대해서 알아보자.
When이란?
java의 switch라고 생각하면 된다.
Java는 아래와 같다
switch(값){
case Case1:
실행할 내용;
break;
case Case2:
실행할 내용;
break;
case Case3:
실행할 내용;
break;
default:
실행할 내용;
break;
}
이것을 Kotlin의 when으로 바꿔보자.
when(값){
Case1 -> 실행할 내용
Case2 -> 실행할 내용
Case3 -> 실행할 내용
else -> 실행할 내용
}
조금 더 깔끔하다.
값과 Case를 비교하고 같으면 -> 이후의 내용을 실행한다.
when의 else는 Switch의 default와 같다고 생각하면 된다. 위의 Case들에 전부 해당하지 않으면 else가 실행된다.
Switch와 when의 차이점은 break의 유무이다. when에는 각 case마다 break가 존재한다고 생각하면 된다. 즉, 하나의 Case가 해당된다면 밑에 있는 내용은 실행되지 않는다.
when의 결과값이 return된다고 생각하여 when 함수를 사용해도 된다. 무슨소린지는 아래 예제를 보면서 설명하겠다.
fun main() {
dayOfWeek()
}
fun dayOfWeek(){
println("What day is it today?")
println(when(Calendar.getInstance().get(Calendar.DAY_OF_WEEK)){
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
6 -> "Saturday"
7 -> "Sunday"
else -> "ERROR"
})
}
위의 코드의 경우에는 println()안에 when을 사용하였다. when에서 나오는 결과물이 println으로 출력된다.
fun main() {
println("What day is it today?")
println(dayOfWeek())
}
fun dayOfWeek()=when(Calendar.getInstance().get(Calendar.DAY_OF_WEEK)){
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
6 -> "Saturday"
7 -> "Sunday"
else -> "ERROR"
}
위와 같이 함수의 return값으로도 when을 사용할 수 있다.
생각보다 활용성이 좋으니까 잘 써먹으면 좋다. 일단 깔끔해서 보기 좋음 ㅎ
728x90