3.5 논리 연산자 [doc] [smts]
논리 연산자는 다수의 조건식을 논리식으로 연결하는 연산자이이다. C 언어의 논리 연산자는 다음과 같은 것들이 있다.
[표 3.5.1] 논리 연산자.
논리연산자 | 의미 | 사용 예 |
&& | AND | i>80 && i<90 |
|| | OR | i>10 || i<20 |
! | NOT | !(i<10) |
논리 연산자에서 NOT의 의미인 ‘!’ 연산자는 관계 연산자의 ‘같지 않다’인 ‘!=’와 비슷하다. 그래서 초보자들은 가끔 혼동하는 경우가 있으니 주의해야 한다.
예를 들어 정수형 변수 ‘ia가 0보다 크고 10보다 작다’ 라는 논리식은 다음과 같이 ‘0보다 크다’와 ‘10보다 작다’ 라는 논리식을 and로 묶어야 한다.
0 < ia && ia < 10 |
세 개 이상의 조건문도 논리 연산자로 묶을 수 있다. ‘문자형 변수 ca가 ‘a’ 이거나 ‘b’ 혹은 ‘c’이다’라는 논리식을 다음과 같이 or로 묶어야 한다.
ca == ‘a’ || ca == ‘b’ || ca == ’c’ |
다음 논리식은 ! 연산자를 이용한 예이다.
!(ia>0) // ia<=0과 같다.!(ca == ‘a’ || ca == ‘b’) // (ca != ‘a’ && ca != ‘b’) 과 같다. |
논리 연산자는 관계 연산자와 마찬가지로 내부적으로 참(true), 거짓(false)의 값을 가진다. &&는 양쪽 조건식이 모두 참일 때 전체 조건식이 참이 되며 ||는 양쪽 조건식 중 하나 이상이 참일 때 전체 조건식이 참이 된다. !은 참은 거짓으로, 거짓은 참으로 논리값을 바꿔준다.
실습으로 어떤 short형 변수 값이 양의 짝수인지를 판별하고 어떤 실수형 변수가 1보다 크거나 –1보다 작은지를 검사하는 프로그램을 작성해보자.
ex03-07.c |
#include <stdio.h>int main(void) {short sA = 10;float fX = 2.0f;if ( sA>0 && sA%2 == 0 )printf("sA is a positive even number.\n");if ( fX<-1 || fX>1 )printf("|fA|<1.\n");} |
이것을 실행하면 첫 번째 printf()문만 수행될 것이다.
'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글
C/C++의 증감연산자(++, --) (0) | 2015.05.19 |
---|---|
C/C++의 조건 연산자(?:) (0) | 2015.05.19 |
3.4 관계 연산자 (0) | 2015.05.19 |
3.2 산술 연산자와 부호 연산자 (0) | 2015.05.19 |
3.3 형변환 (0) | 2015.05.19 |