when은 Java에서의 switch case와 비슷하다. 수식이나 값의 결과에 따라 수행될 부분을 결정하게 되며 자바와 다르게 정수 뿐만 아니라 다양한 타입의 값을 비교할 수 있다.
when (변수 or 수식) { 값1 -> ..코드.. 값2 -> ..코드.. }
코드를 짜봅시다!
fun main(){
val a1 = 10
// 변수 a1의 값에 맞는 부분이 수행된다.
when(a1){
//수행될 코드가 한 줄 이라면 { }로 묶지 않아도 된다
1 -> println("a1은 1 입니다")
5 -> println("a1은 5 입니다")
//수행될 코드가 여러 줄 이라면 { } 로 묶어준다.
10 -> {
println("a1은 10 입니다")
println("코드가 두 줄이네")
println("코드가 세 줄이네")
}
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,7 -> println("a2는 5이거나 6이거나 7입니다")
else -> println("a2는 1,2,3,4,5,6.7 이 아닙니다")
}