[코틀린] 흐름제어 when
- 이런저런 공부/코틀린
- 2020. 6. 26.
when 예제
value의 값이 3일 때 3번 값인 "value is 3"을 출력한다.
fun main(args: Array<String>){
val value: Int = 3
when (value) {
1 -> {
println("value is 1")
}
2 -> {
println("value is 2")
}
3 -> {
println("value is 3")
}
4 -> {
println("value is 4")
}
else -> {
println("I do not know value")
}
}
value is 3
when의 중괄호 생략 예제
if문과 마찬가지로 when도 중괄호 생략이 가능하다.
fun main(args: Array<String>){
val value: Int = 3
when (value) {
1 -> println("value is 1")
2 -> println("value is 2")
3 -> println("value is 3")
4 -> println("value is 4")
else -> println("I do not know value")
}
}
value is 3
if문과 비교
위의 when의 예제를 if문으로 옮길 경우 아래와 같이 프로그래밍할 수 있다.
fun main(args: Array<String>){
val value: Int = 3
if (value == 1){
println("value is 1")
} else if (value == 2){
println("value is 2")
} else if (value == 3){
println("value is 3")
} else if (value == 4){
println("value is 4")
} else
println("I do not know value")
}
value is 3
실습
fun main(args: Array<String>){
//when의 다양한 조건식 (1)
val value: Int? = null
when (value) {
null -> println("value is null")
else -> println("value is not null")
}
//when의 다양한 조건식 (2)
val value2: Boolean? = null
when (value2){
true -> println("value2 is true")
false-> println("value2 is false")
null -> println("value2 is null")
}
//when의 다양한 조건식 (3)
val value3 = when (value2){
true -> 1
false -> 3
else ->4
}
println(value3)
//when의 다양한 조건식 (4)
val value4: Int = 10
when (value4){
is Int -> {
println("value4 is int")
}
else -> {
println("value4 is not int")
}
}
//when의 다양한 조건식 (5)
val value5: Int = 87
when (value5) {
in 60.. 70 -> {
println("value5 in 60~70")
}
in 70.. 80 -> {
println("value5 in 70~80")
}
in 80.. 90 -> {
println("value5 in 80~90")
}
}
}
value is null
value2 is null
4
value4 is int
value5 in 80~90