본문 바로가기
프로그래밍/c언어 기초공부

[C언어 기초-07] 논리 연산자 and, or, not연산자 &&, ||, !

by 졸린이 2021. 8. 21.
반응형

관계 연산자는 <, >, 뭐 이렇게 생겨먹어서 대충 필수 교육 과정을 거치면 의미를 이해하기 쉽다.

 

보다 크다, 작다 뭐.. 근데 논리연산자는 생겨먹은게 &&, ||, ! 뭐 이렇게 생겼다. 저게 뭐지 뭐 느낌표는 팩토리얼인가...

 

논리 연산자

연산자 의미 기본 형식 기능
&& 논리곱 (and) x && y x와 y의 값이 모두 참이면 참 하나라도 거짓이면 거짓
|| 논리합 (or) x || y x나 y 중 하나라도 참이면 결과값은 참. 둘다 거짓이면 거짓
! 논리부정 (not) !x x의 논리 값이 참이면 거짓, 거짓이면 참

- && and연산자라고도 한다. 보통 조건문 같은대서 모든 조건을 만족시켜야할 경우에 사용하곤 한다.

int a = 3;
int b = 4;

if( a < 10 && b < 10) {
	//실행문
}

위 코드와 같이 && 연산자 기준으로 a < 10 도 참이고 b < 10 도 참이므로 if문 안으로 들어가서 실행문을 읽게 된다.

 

- || 이것은 키보드에 Enter 위에 원화 표시(다른 위치인 경우도 있다 대부분 근처) \ 이것을 Shift누르고 입력하면 된다.

논리합 or연산자라고도 하는데 이것은 두 조건 중 하나라도 만족시키면 실행시킬 때 사용한다.

 

아래 코드로 확인해보면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
 
main() {
    int score;
 
    printf("점수 입력 : ");
    scanf("%d"&score);
 
    while (score < 0 || score > 100) {
        printf("0 ~ 100 수 입력하세요\n");
        scanf("%d"&score);
    }
    if (score >= 80 && score <= 100)
        printf("합격");
    else
        printf("불합격");
}
 
cs

 

9행 : while문 score가 0보다 작거나 또는(or) 100보다 크면 반복문을 실행한다.

처음 입력 때 -30을 입력해 score < 0 이 수식에 참이 들어가서 while문 안으로 들어간다.

두번 째 입력 했을 때 110을 입력해 100보다 큰 수식이 참이 들어가 while문 안으로 들어간다.

세번째 85 입력은 0보다 크고 100보다 작아 두 수식 거짓으로 들어가서 while문을 타지 않는다.

 

13행 : score가 80보다 크거나 같고(and) score가 100보다 작거나 같으면 참이 되어 if문을 실행한다.

아니면 else문으로 가고

 

문맥 의미상 or, and 연산자 그대로 해석하면 이해가 간다.

 

! 연산자는 수식 반대로 생각하면 된다.

a = 100;
b = 3;

if(!a<b){
	//실행문
}

a가 100 b가 3 a < b 는 b가 작으므로 거짓이지만 ! 가 붙어서 거짓은 참으로 바꾸게 되므로 if문 안으로 들어간다.

반응형

댓글