Android/Kotlin

if(if-expression, if-statement), when(when-expression, when-statement)

네모메모 2023. 8. 12. 21:29
반응형

코틀린 if문

종류

- if-expression (if식) : 리턴값을 사용, 반드시 else가 있어야함!

- if-statement (if문) : 리턴값을 쓰지 않고 실행할 문장 선택용

 

코틀린 when문

- 여러 조건에 대한 분기 처리

종류 

- (when-expression, when-statement)은 if문과 종류 동일 

// when-expression
print(
    when(d) {
        1 -> "one"
        2 -> "two"
        else -> "greater than two"
    }
)

// when-statement
when(d) {
	1 -> print("one")
    2 -> print("two")
    else -> print("greater than two")
}

표현

- 어떤 값을 기준으로 분기 처리 when(d) { ...d값에 따라 분기... }

- 그 외 when { ...각 조건별 분기... }

// 어떤 값을 기준으로 분기 처리 
when(d) {
    1 -> "one"
    2 -> "two"
    else -> "greater than two"
}


// 그 외
when {
a ==1 && d == 1 -> print("a and b are one")
    d == 2 -> print("greater than or equal to two")
    else -> print("greater than two")
}

 

 

 

내가 눈여겨 본 부분

 

- if나 when을 expression(식)으로 사용할 수 없지만 특정 변수값을 지정하는 경우 => var변수의 적절한 초기값을 설정해주어야 한다! 

ex1)

var checkTestYN = ""
if(특정 조건) {
 checkTest = "Y"
} 
else {
 checkTest = "N"
}

이렇게 쓰지 말라고 위에 사항 언급 ex2)

var checkTestYN = "N"
if(특정 조건) { checkTest = "Y" }

ㄴ> 간결하지만 조건에 따른 분기처리가 명시적으로 들어나지 않음

 

- if나 when을 expression(식)으로 사용되는 경우 => 리턴값으로 val 변수 값을 설정한다. if/when-expression이 val을 장려하기 위함이라고 함 (불변값을 함수형에서 자주 사용되므로 함수형 접근 방법의 용이성을 위해)

ex3) 

val testYN = if(특정조건) "Y" else "N"

 

반응형