출처 : 깡샘의 코틀린프로그래밍

 

조건문


if 표현식

  • 코틀린에서는 if는 표현식이다.
표현식은 수학에서 말하는 ‘수식’과 거의 같은 의미이다. 예를 들어 2+3 과 같은 표현은 수학에서 말하는 수식이며,
이를 프로그래밍 언어에서 표현식이라 부른다. 표현식에는 상수와 연산자외에도 상수나 변수 혹은 함수등이 포함
될 수 있다. 극단적으로는 하나의 변수 이름만 있더라도 그것을 표현식이라 부를 수 있다.

 

fun main(args: Array<String>) {
    val a = 5
    if (a < 10) println("$a < 10")
    //if - else
    if (a > 0 && a <= 10) {
    	println("0 < $a <= 10")
    } else if(a > 10 && a <= 20){
    	println("10 < $a <=20")
    }else {
    	println("$a > 20")
    }
}


val result=if (a > 10) "hello" else "world"
  • else문이 꼭 정의되어야 한다.
  • 여러 라인이 작성되는 경우 if표현식에 의한 데이터는 맨 마지막 라인이다.
if(a>10) "hello"//ok
val result2=if(a>10) "hello"//error
val result2 = if (a < 10) {
    print("hello....")
    10+20
} else {
    print("world...")
    20+20
}


val result3 = if (a > 10) 20
else if(a > 20) 30
else 10

 

 

when 표현식

  • C혹은 자바의 switch 구문과 비슷하다.
  • when은 코틀린에서 표현식이다.
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")
        }
    }
}


val data1="hello"
when(data1){
    "hello"->println("data1 is hello")
    "world"->println("data1 is world")
    else -> println("data1 is not hello or world")
}
  • 여러 값의 조건을 표현할 수 있다.
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")
}
  • 특정 범위를 조건으로 명시한다.
val data3=15
when(data3){
    !in 1..100 -> println("invalid data")
    in 1..10 -> println("1 <= data3 <= 10")
    in 11..20 -> println("11 <= data3 <== 20")
    else -> println("data3 > 20")
}


val list= listOf<String>("hello","world","kkang")
val array= arrayOf<String>("one","two","three")
val data4="kkang"
when(data4){
    in list -> println("data4 in list")
    in array -> println("data4 in array")
}
  • 다양한 타입의 데이터에 대한 조건
fun testWhen(data: Any){
    when(data){
        1 -> println("data value is 1")
        "hello" -> println("data value is hello")
        is Boolean -> println("data type is Boolean")
    }
}
  • if-else의 대체용으로 다음을 쓸 수 있다.
val data5=15
when {
    data5<=10 -> println("data5 < 10")
    data5>10 && data5<=20 -> println("10 < data5 <= 20")
    else -> println("data5 > 20")
}
  • 표현식
val data6=3
val result2= when(data6){
    1 -> "1...."
    2 -> "2...."
    else -> {
        println("else....")
        "hello"
    }
}

'Backend > Kotlin' 카테고리의 다른 글

[Kotlin] 흐름 제어 구문과 연산자(2/2) - 코틀린 잠시 중단  (0) 2022.09.13
[Kotlin] 데이터 타입  (0) 2022.09.05
[Kotlin] 변수와 함수  (0) 2022.09.01
[Kotlin] 코틀린 이해  (0) 2022.08.31

+ Recent posts