관계 연산자(Relational Operators)란?
관계 연산자는 C 언어에서 두 값 사이의 관계를 비교할 때 사용하는 연산자입니다. 두 값의 대소 관계나 동등 여부를 검사하며, 조건이 참(true)이면 1, 거짓(false)이면 0을 반환합니다.
C 언어에서 제공하는 관계 연산자는 다음과 같습니다.
| 연산자 | 연산자 이름 |
|---|---|
| == | 같음 (Equal to) |
| > | 크다 (Greater than) |
| < | 작다 (Less than) |
| != | 같지 않음 (Not equal to) |
| >= | 크거나 같음 (Greater than or equal to) |
| <= | 작거나 같음 (Less than or equal to) |
관계 연산자 예제
아래 예제는 두 변수 x와 y를 다양한 관계 연산자로 비교하는 코드입니다.
#include <stdio.h>
int main() {
int x = 10;
int y = 28;
if(x==y)
printf("두 변수는 서로 같습니다\n");
if(x>y)
printf("x는 y보다 큽니다\n");
if(x<y)
printf("x는 y보다 작습니다\n");
if(x!=y)
printf("x는 y와 같지 않습니다\n");
if(x<=y)
printf("x는 y보다 작거나 같습니다\n");
if(x>=y)
printf("x는 y보다 크거나 같습니다\n");
return 0;
}실행 결과
x는 y보다 작습니다 x는 y와 같지 않습니다 x는 y보다 작거나 같습니다
x가 10, y가 28이므로 x<y, x!=y, x<=y 조건만 참이 되어 해당 문장들만 출력됩니다.
논리 연산자(Logical Operators)란?
논리 연산자는 하나 이상의 조건을 결합하거나 반전시켜 논리적인 판단을 수행하는 연산자입니다. 조건식의 결과가 참인지 거짓인지에 따라 0 또는 1을 반환하며, C 언어에서 조건 분기(if문)와 반복문(while문 등)의 의사 결정에 필수적으로 사용됩니다.
C 언어에서 제공하는 논리 연산자는 다음과 같습니다.
| 연산자 | 의미 | 결과 |
|---|---|---|
| && | 논리 AND | 모든 피연산자가 참일 때만 참 |
| || | 논리 OR | 피연산자 중 하나라도 참이면 참 |
| ! | 논리 NOT | 피연산자가 0(거짓)일 때 참 |
논리 연산자 예제
아래 예제는 AND(&&), OR(||), NOT(!) 연산자의 동작을 보여줍니다.
#include <stdio.h>
int main() {
int x = 10;
int y = 28;
int a = 15;
int b = 20;
if(x<y && a==b)
printf("x는 y보다 작고, a는 b와 같습니다\n");
if(x<y || a==b)
printf("x는 y보다 작거나, a는 b와 같습니다\n");
if(!x)
printf("x는 0입니다\n");
return 0;
}실행 결과
x는 y보다 작거나, a는 b와 같습니다
x<y는 참(1)이지만 a==b는 거짓(0)이므로 AND 연산(&&)은 전체가 거짓이 되어 첫 번째 문장은 출력되지 않습니다. 반면 OR 연산(||)은 둘 중 하나만 참이어도 참이 되므로 두 번째 문장이 출력됩니다. 또한 x는 10으로 0이 아니므로 !x는 거짓이 되어 마지막 문장도 출력되지 않습니다.
정리
관계 연산자는 두 값을 비교하고, 논리 연산자는 여러 조건을 조합하여 복잡한 판단을 가능하게 합니다. 두 연산자 모두 조건이 참일 때 1, 거짓일 때 0을 반환한다는 점을 기억하면, if문과 반복문에서 조건식을 자유롭게 작성할 수 있습니다.