C, C++

오늘 공부한 C언어(논리 연산자 사용하기)

2DC 2022. 3. 6. 18:08

논리 연산자는 조건식이나 값을 논리적으로 판단한다.

그래서 논리 연산자는 if 조건문에서 조건식을 판단할 때 주로 사용한다.

 

&&  = AND (논리곱 / 조건 모두 참일 때 참)

|| = OR (논리합 / 조건 중 하나만 참이여도 참)

! = NOT (부정 ~ / 참과 거짓을 뒤집음)

 

C언어에서 논릿값 거짓(false)은 0, 참(true)은 0이 아닌 값이며 보통 1을 사용한다.

 

AND 연산이다.

1 그리고 1 = 둘다 침이므로 값은 참 / 1 반환

(1 그리고 0)  또는 (0 그리고 1) = 1은 참,  0은 거짓이며, 하나가 거짓이므로 / 0 반환

0 그리고 0 = 둘 다 거짓이므로 / 0 반환

2 그리고 3 = 둘 다 참이므로 / 1 반환

 

논리 연산에서 중요한 부분은 단락 평가(short-circuit evalution) 이다.

단락 평가는 첫 번째 값 만으로 결과가 확실할 때 두번째 값은 확인(평가)하지 않는 방법을 말한다.

즉 AND 연산자는 두 값이 모두 참이라야 참이므로, 첫 번째 값이 거짓이면 두번째 값은 확인하지 않고

바로 거짓으로 결정한다.

 

 

OR 연산자를 활용해보자. ||

 

OR 연산자는 조건 중 하나가 참이면 모두 참이다.

OR 연산자는 두 값 중 하나만 참이라도 참이므로 첫 번째 값이 참이면

두 번째 값은 확인하지 않고 바로 참으로 결정한다.

 

 

!은 논리학의 ~와 같다. 참과 거짓의 값을 바꾼다.

논리값을 뒤집는 ! 이다.

0은 참으로, 참(0이 아닌 모든 수)은 거짓(0)이 된다.

 


조건식과 논리 연산자 사용하기.

 

재밌다. ㅋㅋ

사실 논리학은 예전에 교양 수준으로 공부한 적이 있다.

그래서 지식들이 쉽게 잘 받아들여진다.

이래서 교양이 중요하다.

 

논리학은 나의 영역이다!!! 하하하

 

 

if 조건문에서 논리 연산자를 사용하면 단락 평가에 따라 동작이 결정된다.

다음 if 조건문에서 &&연산자는 첫 번째 값이 거짓이면 두번째 값은 검사하지 않고 거짓으로 결정하므로

else의 코드가 실행된다.

|| 연산자는 첫 번째 값이 참이면 두 번째 값은 검사하지 않고 참으로 결정하므로 if의 코드가 실행된다.

 

단락 평가의 힘

 

단락 평가를 잘 활용하면 문제가 발생하는 코드를 미리 예방할 수 있다.

 

이 경우 0으로 나누는 에러가 방지된다.
단락 평가의 활용!!

 


삼항 연산자에서 논리 연산자 사용하기.

 

 


한 문제씩 계속 풀다보니

C언어에 점점 익숙해지는 기분이 든다!!