불 대수 (Boolean Algebra)
불 대수 (Boolean Algebra)는 일상적인 논리를 수학적으로 표현한 것이다.
▶ 일반적으로 수학을 할 때 쓰는 값은 숫자 (1,3,5,-1,3.14)는 불 대수에서 진리값(truth value)이라고 부른다.
진리값은 어떤 명제가 참(true)인지 false(거짓)인지를 나타내는 것이며
여기서 명제란 참(true), 거짓(false)이 확실한 문장이다.
그리고 평소 수학을 할 때 쓰는 연산(+ , - * /)들은 불 대수에서 AND, OR, NOT 세 가지 연산이 있다.
▶ 불 대수를 하려면 명제가 무엇인지 파악해야 한다.
' 1+1은 2이다 ' 는 참인 명제이고 ' 2는 1보다 작다 ' 는 거짓인 명제이다.
더 나아가 ' 1+1은 무엇인가? ' 는 질문이기에 명제가 아니며
' 짜장면보다 짬뽕이 맛있다 '는 명확하게 참과 거짓을 판단할 수 없는 주관적인 문장들도 명제가 아니다.
이번엔 연산에서 명제를 살펴보자
▼ AND 연산
AND연산은 두 명제가 모두 ture인지를 확인하는 것이다.
만약에 x라는 명제가 있고 y라는 명제가 있을 때, 두 명제 중 하나라도 거짓이라면 x AND y는 거짓이 된다.
첫 줄에 x, y가 모두 true 일 때 둘 다 참이므로 x AND y는 true이다.
두번째 줄에 x는 true, y는 false일 때 둘중 하나라도 false라면 x AND y는 false이다.
세번째 줄과 네번째 줄도 조건에 만족하지 않아 마찬가지로 false이다.
▼ OR 연산
OR 연산은 두 명제 중 하나라도 true이면 x OR y는 true, 둘 다 거짓이면 false
x,y로 설명보다 예시로 보여주자면
[대한민국의 수도는 제주도이다 OR 대한민국의 수도는 서울이다.] 라고 할 때,
대한민국의 수도는 제주도이거나 서울이다 = 이 문장은 참이라고 볼 수있다.
[대한민국의 수도는 제주도이다 OR 대한민국의 수도는 부산이다.] 라고 할 때,
대한민국의 수도는 제주도이거나 부산이다 = 이 문장은 거짓이라고 볼 수있다.
▼ NOT 연산
반대로 뒤집어 주는 역할을 하며 말 그대로 참이면 거짓으로 만들어주고 거짓이면 참으로 만들어준다
[NOT 대한민국의 수도는 서울이다] 라고 할 때,
대한민국의 수도는 서울이 아니다 = 이 문장은 거짓라고 볼 수있다.
[NOT 2는 1보다 작다] 라고 할 때,
2는 1보다 작지 않다. = 이 문장은 참이라고 볼 수있다.
불린형 (Boolean)
자바스크립트에서 참과 거짓을 표현하는 자료형을 불린(Boolean) 이라고한다.
▼ Boolean 예시(1)
여기 '2는 1보다 크다' 라는 true 명제와 ' 2는 1보다 작다' 라는 false 명제가 있다.
<script>
// Boolean
console.log(2>1);
console.log(2<1);
</script>
실행해보면 다음과 같이 출력된다.
▼Boolean 예시(2)
가장 간단하게 쓸 수 있는 명제는 숫자 비교이다.
<script>
// Boolean
console.log(2>1);
console.log(2<1);
console.log(3 >= 2); /*3은 2보다 크거나 같다 */
console.log(3 <= 3); /*3은 3보다 작거나 같다*/
console.log(3 === 3); /*3은 3과 서로 일치하다*/
console.log(3 !== 3); /*3은 3과 불일치하다*/
</script>
문자열도 비교해보자
<script>
console.log('SeopE' === 'SeopE'); //'SeopE'와 'SeopE'는 같다 = true
console.log('SeopE' === 'Seop2'); //'SeopE'와 'Seop2'는 같다 = false
console.log('SeopE' !== 'SeopEE'); //'SeopE'와 'SeopEE'는 다르다 = true
</script>
어느 정도 알았으니 Boolean 연산에 대해 제대로 살펴보자
▼ Boolean AND연산자
AND 연산은 앰퍼샌트 기호(&) 두 개를 사용한다.
불 대수에서 했던것처럼 두 값이 true일때 true이다.
<script>
console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);
</script>
AND 연산자의 결과는 다음과 같다
▼ Boolean OR연산자
OR연산은 세로 바 기호 ( | ) 두 개를 사용한다
불 대수에서 했던 것처럼 두 명제 중 하나라도 true이면 true, 둘 다 거짓이면 false이다.
<script>
console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);
</script>
OR 연산자의 결과는 다음과 같다
▼ Boolean NOT연산자
NOT연산자는 값 앞에 ( ! ) 느낌표를 사용한다.
불 대수에서 했던 것처럼 반대로 뒤집어 주는 역할을 하며 말 그대로 참이면 거짓으로 만들어주고
거짓이면 참으로 만들어준다
<script>
console.log(!true);
console.log(!false);
</script>
NOT 연산자의 결과는 다음과 같다
참고로 NOT 연산은 다음과 같이 중첩해서 사용할 수있다.
<script>
console.log(!!true);
console.log(!!false);
</script>
첫번째는 true의 반대의 반대 이므로 true가 출력될 것이고
두번째는 false의 반대의 반대 이므로 false가 출력 될 것이다.
★ GitHub 주소 (Boolean)
★notion
https://www.notion.so/Boolean-7e143d28680347eb9d53f2fefe23712e
'JS' 카테고리의 다른 글
(8) JavaScript - 자료형 / 형 변환 (Type Conversion) (0) | 2024.09.19 |
---|---|
(7)JavaScript - 자료형 / typeof 연산자 (0) | 2024.09.16 |
(5)JavaScript - 자료형 (숫자형과 문자열) (0) | 2024.09.15 |
(4)JavaScript - return문 (0) | 2024.09.13 |
(3)JavaScript - Parameter (매개변수) (0) | 2024.09.13 |