IT/Kotlin

[Kotlin] 조건문 IF, When, 비교(==, ===)

forest-33 2024. 3. 26. 21:34

IF

  • if 문은 식(expression)이기 때문에 결과 값을 반환하며, 이러한 특징을 이용하여 변수에 할당할 수 있음.
  • 코틀린에서는 삼항연산자가 없고 if문으로 대체함
fun maxOf(a: Int, b: Int): Int {
    return if (a > b) {
        a
    } else {
        b
    }
}

fun main() {
    val x = 5
    val y = 10
    val max = maxOf(x, y)
    println("Max value is $max") // Max value is 10 출력
}


fun max(a: Int, b: Int) = if (a > b) a else b         // 삼항연산자 없음

 

 

When

  • 각 분기는 값을 비교하고, 해당하는 분기의 코드 블록을 실행
  • else 블록은 선택사항으로 만약 else 블록이 없으면 어떤 분기에도 해당하지 않는 경우에는 아무런 코드도 실행되지 않음.
  • 여러 값에 대해 같은 코드를 실행하려면 쉼표로 구분하여 값을 나열할 수 있음
  • when도 식이기 때문에 바로 리턴할 수 있음
  •  
fun describe(value: Any): String {
    return when (value) {
        1 -> "One"
        2 -> "Two"
        3, "Three" -> "Three"
        is String -> "String"
        else -> "Unknown"
    }
}

fun main() {
    println(describe(1))       // One 출력
    println(describe(2))       // Two 출력
    println(describe("Three")) // Three 출력
    println(describe(4))       // Unknown 출력
    println(describe("Hello")) // String 출력
}

 

 

비교 (== 동등성 연산자)

  • == 연산자는 두 객체의 값이 동일한지를 비교, 이 연산자는 자바에서의 equals() 메서드와 유사한 역할
  • 예를 들어, 두 문자열이 동일한 문자로 이루어져 있으면 == 연산자는 true를 반환
val str1 = "hello"
val str2 = "hello"
val str3 = "world"

println(str1 == str2) // true 출력
println(str1 == str3) // false 출력

 

비교 (===  참조 동등성 연산자)

  • === 연산자는 두 객체의 참조가 동일한지를 비교 이 연산자는 자바에서의 == 연산자와 유사한 역할
  •  즉, 두 객체가 메모리 상에서 같은 위치를 참조하는지를 확인
val str1 = "hello"
val str2 = "hello"
val str3 = str1

println(str1 === str2) // false 출력
println(str1 === str3) // true 출력