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 출력