언어 자료구조 알고리즘/C 언어 문법

14. 비교/논리 연산자

언제나휴일 2009. 8. 19. 05:47
반응형
비교/논리 연산자

 

다루는 내용

  - 비교 연산자

  - 논리 연산자

 

비교 연산자로는 이항 연산자인 <, <=, >, >=, ==, != 가 있다.

논리 연산자로는 이항 연산자인 &&, ||, ! 가 있다.

 

비교 연산자와 논리 연산자는 이항 연산자로 연산결과가 참이면 결과값이 1이 되며 거짓일 경우에는 0이 된다.

 

비교 연산의 경우 2<4<3 과 같은 표현은 가능하다.  표현이 가능하다는 말은 문법적으로 가능하다는 것일 뿐 연산 결과에 대해서는 주의깊게 살펴보아야 할 것이다.

 

Look & Feel & Think

 

 

 일반 수학에서는 2 < 4 < 3 을 하나의 수식으로 생각을 하여 풀기 때문에 연산 결과가 거짓이다.

 C언어에서는 2 < 4 연산을 수행을 하고 해당 연산 결과 < 3 을 수행을 한다.

 즉, 2 < 4 < 3 ☞ (2 < 4) < 3  ☞ 1 < 3  과 같이 진행이 되어 해당 연산 결과가 참이다.

 

 

일반 수학에서도 2 < 4 < 3 은 '2 < 4 이고 4 <3 이다'와 동치라는 사실은 모두 알고 있을 것이다.

이항 연산자로 쓰이는 C언어에서도 (2 < 4) && (4 < 3)과 같이 표현을 하면 예상한 결과와 같은 결과를 얻을 수 있다.

 

이와 같이 C언어에서 여러 값을 비교하고자 한다면 논리연산자와 결합하여 표현을 하여 가독성을 높일 수 있다.

 

논리 연산에서는 피연산자가 0이 아니면 참으로 취급을 하고 피연산자가 0이면 거짓으로 취급을 하여 연산을 수행한다.

또한, 논리곱(&&)의 경우 왼쪽 피연산자가 거짓이면 오른쪽 피연산자가 참인지 거짓인지를 확인하지 않는다.

논리합(||)의 경우에는 왼쪽 피연산자가 참이면 오른쪽 피연산자가 참인지 거짓인지를 확인하지 않는다.

 

Look & Feel & Think

 

 다음의 두 개의 예의 결과를 보고 논리곱과 논리합의 연산 수행과정을 이해해 보세요. 

 
 

  

 

 

마지막으로 노파심에서 얘기를 하는데 <= 와 같은 연산자는 하나의 토큰이므로 공백이 와서는 안된다.

반응형

'언어 자료구조 알고리즘 > C 언어 문법' 카테고리의 다른 글

19. 기본입출력 - 입력  (0) 2009.08.19
18. 기본 입출력 - 출력  (0) 2009.08.19
17.기본 입출력 개요  (0) 2009.08.19
16. 지시/주소/인덱스/간접연산자  (0) 2009.08.19
15. 비트/ 쉬프트 연산자  (0) 2009.08.19
13. 대입 연산자  (0) 2009.08.19
12. 증감연산자  (0) 2009.08.19
11. 산술 연산자  (0) 2009.08.19
10. 연산자  (0) 2009.08.19
9. 변수의 종류  (0) 2009.08.19