Table of Contents
이번 주제에서는 부울(Booleans) 에 대해 이야기하겠습니다 . 부울 값은 프로그래밍에서 자주 사용됩니다. 기본적으로 그들은 두 가지 반대 상태를 나타냅니다. 예를 들어 부울 값은 다음을 나타낼 수 있습니다.
- 매장이 열려 있는지 여부;
- 비행기가 하늘에 떠 있는지;
- 여행이 허용되는지 여부;
- 옵션 활성화 여부 등.
부울 변수
부울(Boolean)은true
다음과 같은 두 가지 값만 가질 수 있는 특수 데이터 유형입니다 false
.
val t = true // t is true
val f = false // f is false
println(t) // true
println(f) // false
부울 변수에는 정수 값을 할당할 수 없습니다. Kotlin에서는 와 0
동일하지 않습니다 false
.
부울 값 읽기
Kotlin 1.4부터 다음과 같은 부울 값을 읽을 수 있습니다.
val b: Boolean = readLine().toBoolean()
Kotlin 1.6부터 다음과 같은 부울 값을 읽을 수 있습니다.
val b: Boolean = readln().toBoolean()
toBoolean()
true
입력이 “true”이면 대소문자를 구분하지 않고 반환됩니다 . 그렇지 않으면 를 반환합니다 false
.
따라서 다음과 같은 입력이 있다고 가정해 보겠습니다.
true
True
TRuE
T
false
출력은 다음과 같습니다:
println(readln().toBoolean()) // true
println(readln().toBoolean()) // true
println(readln().toBoolean()) // true
println(readln().toBoolean()) // false
println(readln().toBoolean()) // false
readLine()!!.toBoolean()
Kotlin 컴파일러 버전 1.3 이하에서 사용할 수 있습니다 .
val b: Boolean = readLine()!!.toBoolean()
String
Kotlin 1.5부터는 다른 함수를 사용하여 Boolean
. 이 함수는 문자열이 단어 “true”와 같고 대소문자를 구분하며 문자열이 “false”와 같으면 toBooleanStrict()
반환합니다 . 그렇지 않으면 프로그램이 . 이 함수는 문자열이 단어 “true”와 같고 대소문자를 구분하며 문자열이 “false”와 같으면 반환합니다 . 그렇지 않으면 특별한 값을 반환합니다 . 나중에 논의하겠습니다.true
false
java.lang.IllegalArgumentException
toBooleanStrictOrNull()
true
false
null
println("true".toBooleanStrict()) // true
// println("True".toBooleanStrict()) // program crashes
println("false".toBooleanStrict()) // false
// println("faLse".toBooleanStrict()) // program crashes
println("true".toBooleanStrictOrNull()) // true
println("false".toBooleanStrictOrNull()) // false
println("faLse".toBooleanStrictOrNull()) // null
논리 연산자
부울 유형 변수는 논리 연산자를 사용하여 논리문을 구성합니다. Kotlin에는 NOT , AND , OR 및 XOR 이라는 네 가지 논리 연산자가 있습니다 .
- NOT은 부울 값을 반대로 바꾸는 단항 연산자입니다. 로 표시할 수 있습니다
!
.
val f = false // f is false
val t = !f // t is true
true
AND는 두 피연산자가 모두 이면 반환하는 이항 연산자입니다true
. 그렇지 않으면 를 반환합니다false
. 로 표시할 수 있습니다&&
.
val b1 = false && false // false
val b2 = false && true // false
val b3 = true && false // false
val b4 = true && true // true
true
OR은 하나 이상의 피연산자가 이면 반환하는 이항 연산자입니다true
. 그렇지 않으면 를 반환합니다false
. 로 표시할 수 있습니다||
.
val b1 = false || false // false
val b2 = false || true // true
val b3 = true || false // true
val b4 = true || true // true
true
XOR(배타적 OR)은 부울 피연산자의 값이 다른 경우 반환하는 이항 연산자입니다 . 그렇지 않으면 입니다false
.
val b1 = false xor false // false
val b2 = false xor true // true
val b3 = true xor false // true
val b4 = true xor true // false
XOR 연산자는 다른 논리 연산자만큼 널리 사용되지 않습니다. 하지만 만일을 대비해 계속 사용할 수 있습니다.
논리 연산자 우선순위
아래에서 Kotlin의 논리 연산 우선순위 를 살펴보세요 . 우선 순위는 괄호 없이 다른 변수를 그룹화하는 방법을 결정합니다.
!
NOT을 위해xor
XOR의 경우&&
AND의 경우||
또는
따라서 아래 변수는 다음과 같습니다 true
.
val bool = true && !false // true because !false is evaluated first
(...)
괄호를 사용하여 실행 순서를 변경할 수 있습니다 .
예를 들어, 여름과 다른 계절에 하이킹을 갈 가능성을 결정하는 부울 표현식을 작성해 보겠습니다.
val cold = false
val dry = true
val summer = false // suppose it is autumn now
val hiking = dry && (!cold || summer) // true, let's go hiking!
위 표현에 너무 속지 마세요. 좋은 프로그래머는 산술 규칙뿐만 아니라 논리 연산도 이해해야 합니다. 그렇지 않으면 악천후 속에서 하이킹을 하게 될 수 있습니다.
결론
!
이 주제에서는 네 가지 주요 Kotlin 논리 연산자인 (NOT), xor
(배타적 OR), &&
(AND), ||
(OR)에 대해 논의했습니다 . Kotlin을 마스터하려면 이를 잘 이해해야 합니다. 그들은 또한 우선순위라고 불리는 특별한 실행 순서를 준수합니다. 처음에는 혼란스러워 보일 수도 있지만 연습을 하면 완벽해집니다. 그러고보니 몇 가지 과제를 해결해 볼까요!
관련 주제
주제 전제 조건:
답안
솔루션의 답은 위이고, 제가 쓴 답은 아래입니다.
역시 솔루션의 답들은 무릎을 딱 치게 만드네요. 코딩이라는게 간편하게 쉽고 짧게 쓰는게 좋은것이라고 어디서 들은것 같은데요. 정말 한가지 답안이 아니라 여러가지 좋은 답안들이 있어요. 이 글을 보시는 공부하시는 분들도 자기만의 코딩방법을 더 쉽고 짧게 만들기를 노력해보세요. 그래야 코딩 실력이 늘겠죠!!!