// 표현식으로서의 if문
val result = if(a>0) "hello" else "world" // -> 표현식일 경우 else문 생략 불가능
println(result)
// if 표현식의 반환값
val result2 = if(a<10){
println("hello.."
10 + 20 // -> { }사용할 때 데이터를 맨마지막에 작성
} else {
print("world..")
20+20
}
println(result2)
🖥worldhello..30
1) 정수로 분기
fun main(args: Array<String>){
val a2 = 1
when (a2) {
1 -> println("a2 == 1")
2 -> println("a2 == 2")
else -> println("a2 is neither 1 nor 2")
}
}
🖥a2 == 1
2) 정수 이외의 값으로 분기
val data1 = "hello"
when(data1) {
"hello" -> println("data1 is hello")
"world" -> println("data1 is world")
else -> println("data1 is not hello or world")
}
🖥data1 is hello
3) 여러 값으로 분기
when(data2) {
10, 20 -> println("data2 is 10 or 20")
30, 40 -> println("data2 is 30 or 40")
some() -> println("data2 is 50")
30 + 30 -> println("data2 is 60")
}
4) 범위 값으로 분기
when(data3) {
!in 1..100 -> println("invalid data")
in 1..10 -> println("1 <= data3 <= 10")
in 11..20 -> println("11 <= data3 <== 20")
else -> println("data2 > 20")
}
🖥11 <= data3 <== 20
5) 여러 타입으로 분기
fun testWhen(data: Any){
when(data){
1-> println("data value is 1")
"hello" -> println("data value is hello")
is Boolean -> println("data value is Boolean")
}
}
6) if else 대체용으로 사용
7) 표현식으로 사용