[코틀린] 흐름제어 when

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

 

댓글

Designed by JB FACTORY