관계 연산자는 <, >, 뭐 이렇게 생겨먹어서 대충 필수 교육 과정을 거치면 의미를 이해하기 쉽다.
보다 크다, 작다 뭐.. 근데 논리연산자는 생겨먹은게 &&, ||, ! 뭐 이렇게 생겼다. 저게 뭐지 뭐 느낌표는 팩토리얼인가...
논리 연산자
연산자 | 의미 | 기본 형식 | 기능 |
&& | 논리곱 (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문 안으로 들어간다.
'프로그래밍 > c언어 기초공부' 카테고리의 다른 글
[C언어 기초-09] 비트 연산자 논리 연산자 ~, &, |, ^ (0) | 2024.01.25 |
---|---|
[C언어 기초-08] 비트 연산자 시프트 연산자 (0) | 2024.01.08 |
[C언어 기초-06] 관계(비교) 연산자 (0) | 2021.08.18 |
[C언어 기초-05] 연산자 (대입, 산술, 증감연산자) (0) | 2021.08.03 |
[C언어 에러 해결] Visual Studio 2019 scanf() C4996 에러해결 (0) | 2021.08.02 |
댓글