C언어 초급 - 5장: 연산자와 표현식 (5.4 논리 연산자 (&&, ||, !))
2025. 2. 23. 17:01ㆍ프로그래밍 언어/C
아래는 올바르게 정리된 논리 연산자 표입니다.
이제 ||(논리 OR 연산자)가 제대로 정렬되었습니다.
5.4 논리 연산자 (&&, ||, !)
C 언어에서 논리 연산자(Logical Operators)는 두 개 이상의 조건을 조합하여 참(true) 또는 거짓(false)을 반환하는 연산자입니다.
이 연산자는 조건문(if, while)에서 자주 사용되며, true(1)과 false(0)의 개념을 기반으로 동작합니다.
1. 논리 연산자의 종류
1.1 논리 연산자 개요
연산자 | 설명 | 사용 예제 | 결과 (A = 1, B = 0) |
&& | 논리 AND (두 조건이 모두 참이면 true) | A && B | 0 (false) |
|| | 논리 OR (하나라도 참이면 true) | A || B | 1 (true) |
! | 논리 NOT (논리 반전, true ↔ false) | !A | 0 (false) |
📌 **참(true) = 1, 거짓(false) = 0
📌 논리 연산자는 주로 조건문(if, while)에서 사용됨.
2. 논리 AND 연산자 (&&)
2.1 && 연산자의 개념
- 두 개의 조건이 모두 참(true)일 때만 true 반환.
- 하나라도 거짓(false)이면 결과는 false.
진리표 (Truth Table)
A | B | A && B |
true(1) | true(1) | true(1) |
true(1) | false(0) | false(0) |
false(0) | true(1) | false(0) |
false(0) | false(0) | false(0) |
2.2 && 연산자 예제
#include <stdio.h>
int main() {
int age = 25;
int income = 4000;
if (age > 18 && income > 3000) {
printf("대출 신청 가능\n");
} else {
printf("대출 신청 불가능\n");
}
return 0;
}
실행 예시
대출 신청 가능
📌 설명
- age > 18 (참 true)
- income > 3000 (참 true)
- 둘 다 참이므로 && 연산 결과는 true, 조건 충족 → "대출 신청 가능" 출력.
3. 논리 OR 연산자 (||)
3.1 || 연산자의 개념
- 하나라도 참(true)이면 true 반환.
- 둘 다 거짓(false)일 때만 false.
진리표 (Truth Table)
A | B | A || B |
true(1) | true(1) | true(1) |
true(1) | false(0) | true(1) |
false(0) | true(1) | true(1) |
false(0) | false(0) | false(0) |
3.2 || 연산자 예제
#include <stdio.h>
int main() {
int hasJob = 1;
int hasSavings = 0;
if (hasJob || hasSavings) {
printf("대출 신청 가능\n");
} else {
printf("대출 신청 불가능\n");
}
return 0;
}
실행 예시
대출 신청 가능
📌 설명
- hasJob == 1 (참 true)
- hasSavings == 0 (거짓 false)
- 하나라도 참이므로 || 연산 결과는 true, 조건 충족 → "대출 신청 가능" 출력.
4. 논리 NOT 연산자 (!)
4.1 ! 연산자의 개념
- 참(true)이면 거짓(false)로 변경.
- 거짓(false)이면 참(true)로 변경.
진리표 (Truth Table)
A | !A |
true(1) | false(0) |
false(0) | true(1) |
4.2 ! 연산자 예제
#include <stdio.h>
int main() {
int raining = 1;
if (!raining) {
printf("우산 필요 없음\n");
} else {
printf("우산을 챙기세요\n");
}
return 0;
}
실행 예시
우산을 챙기세요
📌 설명
- raining == 1 (참 true)
- !raining == 0 (거짓 false)
- if (!raining) 조건이 거짓이므로 else 실행 → "우산을 챙기세요" 출력.
5. 논리 연산자의 활용 예제
5.1 특정 범위 내 숫자 판별
&& 연산자를 활용하여 숫자가 특정 범위 내에 있는지 검사할 수 있습니다.
#include <stdio.h>
int main() {
int num;
printf("숫자를 입력하세요: ");
scanf("%d", &num);
if (num >= 1 && num <= 100) {
printf("입력한 숫자는 1~100 사이입니다.\n");
} else {
printf("입력한 숫자가 범위를 벗어났습니다.\n");
}
return 0;
}
실행 예시
숫자를 입력하세요: 50
입력한 숫자는 1~100 사이입니다.
숫자를 입력하세요: 150
입력한 숫자가 범위를 벗어났습니다.
📌 설명
- num >= 1 && num <= 100 → num이 1~100 사이면 true.
- 그렇지 않으면 false.
5.2 로그인 시스템
|| 연산자를 활용하여 여러 개의 조건 중 하나만 충족해도 실행되는 프로그램을 만들 수 있습니다.
#include <stdio.h>
#include <string.h>
int main() {
char username[20];
printf("사용자 이름을 입력하세요: ");
scanf("%s", username);
if (strcmp(username, "admin") == 0 || strcmp(username, "user") == 0) {
printf("로그인 성공\n");
} else {
printf("접근 불가\n");
}
return 0;
}
실행 예시
사용자 이름을 입력하세요: admin
로그인 성공
사용자 이름을 입력하세요: guest
접근 불가
📌 설명
- strcmp(username, "admin") == 0 || strcmp(username, "user") == 0
- username이 "admin" 또는 "user"이면 로그인 허용.
6. 정리
연산자 | 설명 | 사용 예제 | 결과 (A = 1, B = 0) |
&& | 논리 AND (두 조건이 모두 참이면 true) | A && B | 0 (false) |
|| | 논리 OR (하나라도 참이면 true) | A || B | 1 (true) |
! | 논리 NOT (논리 반전, true ↔ false) | !A | 0 (false) |
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 초급 - 6장: 조건문 (6.1 if, if-else 문) (0) | 2025.02.23 |
---|---|
C언어 초급 - 5장: 연산자와 표현식 (5.5 증감 연산자 (++, --)) (0) | 2025.02.23 |
C언어 초급 - 5장: 연산자와 표현식 (5.3 관계 연산자 (==, !=, >, <, >=, <=)) (0) | 2025.02.23 |
C언어 초급 - 5장: 연산자와 표현식 (5.2 대입 연산자 (=)) (0) | 2025.02.23 |
C언어 초급 - 5장: 연산자와 표현식 (5.1 산술 연산자 (+, -, *, /, %)) (0) | 2025.02.23 |