논리 연산자는 조건식이나 값을 논리적으로 판단한다.
그래서 논리 연산자는 if 조건문에서 조건식을 판단할 때 주로 사용한다.
&& = AND (논리곱 / 조건 모두 참일 때 참)
|| = OR (논리합 / 조건 중 하나만 참이여도 참)
! = NOT (부정 ~ / 참과 거짓을 뒤집음)
C언어에서 논릿값 거짓(false)은 0, 참(true)은 0이 아닌 값이며 보통 1을 사용한다.
1 그리고 1 = 둘다 침이므로 값은 참 / 1 반환
(1 그리고 0) 또는 (0 그리고 1) = 1은 참, 0은 거짓이며, 하나가 거짓이므로 / 0 반환
0 그리고 0 = 둘 다 거짓이므로 / 0 반환
2 그리고 3 = 둘 다 참이므로 / 1 반환
논리 연산에서 중요한 부분은 단락 평가(short-circuit evalution) 이다.
단락 평가는 첫 번째 값 만으로 결과가 확실할 때 두번째 값은 확인(평가)하지 않는 방법을 말한다.
즉 AND 연산자는 두 값이 모두 참이라야 참이므로, 첫 번째 값이 거짓이면 두번째 값은 확인하지 않고
바로 거짓으로 결정한다.
OR 연산자를 활용해보자. ||
OR 연산자는 두 값 중 하나만 참이라도 참이므로 첫 번째 값이 참이면
두 번째 값은 확인하지 않고 바로 참으로 결정한다.
논리값을 뒤집는 ! 이다.
0은 참으로, 참(0이 아닌 모든 수)은 거짓(0)이 된다.
조건식과 논리 연산자 사용하기.
사실 논리학은 예전에 교양 수준으로 공부한 적이 있다.
그래서 지식들이 쉽게 잘 받아들여진다.
이래서 교양이 중요하다.
if 조건문에서 논리 연산자를 사용하면 단락 평가에 따라 동작이 결정된다.
다음 if 조건문에서 &&연산자는 첫 번째 값이 거짓이면 두번째 값은 검사하지 않고 거짓으로 결정하므로
else의 코드가 실행된다.
|| 연산자는 첫 번째 값이 참이면 두 번째 값은 검사하지 않고 참으로 결정하므로 if의 코드가 실행된다.
단락 평가를 잘 활용하면 문제가 발생하는 코드를 미리 예방할 수 있다.
삼항 연산자에서 논리 연산자 사용하기.
한 문제씩 계속 풀다보니
C언어에 점점 익숙해지는 기분이 든다!!
'C, C++' 카테고리의 다른 글
오늘 공부한 C언어(비트 연산자 이용하기) (0) | 2022.03.09 |
---|---|
오늘 공부한 C언어(불 자료형 사용하기) (0) | 2022.03.09 |
오늘 공부한 C언어(비교 연산자와 삼항 연산자 사용하기) (0) | 2022.03.06 |
오늘 공부한 C언어(else if를 사용하여 여러 방향으로 분기하기) (0) | 2022.03.01 |
오늘 공부한 C언어(else를 사용하여 두 방향으로 분기하기 (0) | 2022.03.01 |