hoon's bLog

Kotlin boolean 타입 및 비교 연산 본문

IT/Kotlin

Kotlin boolean 타입 및 비교 연산

개발한기발자 2023. 9. 13. 14:02
반응형


불(boolean) 타입과 논리 연산

참(true)이나 거짓(false)중 하나로 판명되는 불(Boolean) 타입과 논리연산을 제공한다.

val hasErrors = false;
val testPassed = true;

boolean은 수타입과 다른 타입이며, 암시적이든 toInt() 같은 명시적 내장 연산을 쓰든 수로 변환 할 수 없다.
반대로 수를 Boolean 타입으로 변환할 수도 없다.

boolean이 지원하는 연산은 다음과 같다.

  • ! : 논리 부정
  • or, and, xor : 즉시계산 방식의 논리합, 논리곱, 논리 배타합.
  • ||, && : 지연계산 방식의 논리합, 논리곱
  • 지연 계산 연산자(||, &&)는 자바의 동일 연산자와 같은 의미를 제공
  • || 왼쪽 피연산자가 참이면 오른쪽 피연산자를 계산 X
  • &&의 왼쪽 피연산자가 거짓이면 오른쪽 피연산자를 계산하지 않는다.

자바 VS 코틀린 : 코틀린은 &와 | 연산자를 제공하지 않고, and와 or가 대신한다.

동등성 / 비동동성 연산자

fun main() {
    val x = 1;
    val y = 1;

    println(x and y)                        // 1
    println(x or y)                         // 1
    println(x xor y)                        // 0

    println((x == 1) and ( y != 1 ))        // false
    println((x == 1) xor ( y != 1 ))        // true
    
    println(( x == 0 ) || ( y == 0 ))       // false
    println( x == 1 || (y / (x - 1)) != 1)  // true
    println( x != 1 && (y / (x - 1)) != 1)  // false
}

마지막 두 예제에서 x == 1 일 때 오른쪽 연산을 하면 0으로 나누는 오류가 발생하므로 지연 계산이 필수적이다.
즉시계산인 and, or, xor은 중위 연산자와 같은 우선순위 이므로 &&, || 계산보다 더 우선해 계산된다.

언제나 새로운 정보 공유와 잘못된 정보

비판/지적/태클은 환영입니다!

도움이 되셨다면 공감♥️, 댓글 부탁드려요:)

끝.

Reference

https://wikidocs.net/173870

 

2.2.7 불타입과 논리 연산

참(true)이나 거짓(false)중 하나로 판명되는 불(Boolean) 타입과 논리연산을 제공한다. ``` val hasErrors = false; val testPasse…

wikidocs.net

 

728x90
반응형

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

Kotlin 코틀린 문자열 템플릿 및 기본 문자열 연산  (0) 2024.07.31
Kotlin 비교와 동등성  (5) 2023.09.14
Kotlin char 문자 타입  (0) 2023.08.24
Kotlin 정수 타입  (2) 2023.08.14
Kotlin 식별자, 가변변수, 연산  (1) 2023.08.11