-
[C Language] 11. 논리 연산자 - C 언어CSE/C Language 2015. 6. 13. 10:08
1. 논리 연산자의 종류
논리합(||)
- 논리합은 두 항 중에 하나라도 참이면 그 결과값이 참이 되는 논리 연산자이다.
논리곱(&&)
- 논리곱은 두 항 모두 참이여야 참이 되고, 둘 중에 하나라도 거짓이면 결과값은 거짓이 되는 논리 연산자이다.
논리부정(!)
- 논리부정은 항의 결과값의 반대로 반전시킨다. 참이였다면 거짓으로, 거짓이면 참으로 반전시킨다.
2. 논리 연산 방법
x
y
논리합(OR)
논리곱(AND)
논리부정(NOT) x
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
아래 간단한 예제로 확인해보자.
1. (7 == 4) || (5 == 5) : 오른쪽의 5 == 5가 참이므로 논리합에 의해 결과는 참이다.
2. (5 > 3) && (4 < 3): 왼쪽항의 결과는 참이나 오른쪽항의 결과가 거짓이고 논리곱이므로 거짓이다.
간단한 출력 예제
123456789101112131415161718192021222324252627282930313233/** logic.c** Created on: 2015. 5. 11.* Author: root*/#include <stdio.h>int main(void) {puts("And(&&)");printf("0 && 0 = %d\n", 0 && 0);printf("0 && 1 = %d\n", 0 && 1);printf("1 && 0 = %d\n", 1 && 0);printf("1 && 1 = %d\n", 1 && 1);puts("");puts("OR(||)");printf("0 || 0 = %d\n", 0 || 0);printf("0 || 1 = %d\n", 0 || 1);printf("1 || 0 = %d\n", 1 || 0);printf("1 || 1 = %d\n", 1 || 1);puts("");puts("NOT(!)");printf("!0 = %d\n", !0);printf("!1 = %d\n", !1);return 0;}cs 논리곱을 실제로 적용시킨 예제를 보자.
1234567891011121314151617181920212223242526272829/** grade.c** Created on: 2015. 5. 11.* Author: root*/#include <stdio.h>int main(void) {int score;printf("Input score!!");scanf("%d", &score);if ((score <= 100) && (score > 90))puts("Grade A");else if ((score <= 90) && (score > 80))puts("Grade B");else if ((score <= 80) && (score > 70))puts("Grade C");else if ((score <= 70) && (score > 60))puts("Grade D");elseputs("Grade F");return 0;}cs * Programming in C 서적을 참고하여 작성하였습니다
'CSE > C Language' 카테고리의 다른 글
[C Language] 14. 캐스트 연산자 - C 언어 (0) 2015.06.13 [C Language] 13. 비트 연산자 - C 언어 (0) 2015.06.13 [C Language] 12. 조건 연산자 - C 언어 (0) 2015.06.13 [C Language] 10. 관계 연산자와 상등 연산자 - C 언어 (0) 2015.06.13 [C Language] 9. 증가 연산자와 감소 연산자 - C 언어 (0) 2015.06.13 [C Language] 8. 사칙 연산자와 나머지 연산자 - C 언어 (0) 2015.06.13