관리 메뉴

hye-_

증감 연산자, 관계 연산자, 논리 연산자 본문

CS/C언어1

증감 연산자, 관계 연산자, 논리 연산자

hyehh 2023. 12. 1. 21:52
728x90
반응형
SMALL
728x90
반응형
SMALL

관계, 논리연산자

증감연산자 ● 변수의 값을 하나 증가시키거나 감소시키는 연산자
● 단항 연산자
● 전위증감연산자/후위증감연산자
관계연산자 (Relational Operator) ● 두 개의 피연산자를 비교하는 연산자
● 결과값은 참(1) 아니면 거짓(0)
논리연산자 (Logical Operator) ● 여러 개의 조건을 조합하여 참과 거짓을 따지는 연산자
● 겨롹값은 참(1) 아니면 거짓 (0)

01. 증감연산자

1. 부호연산자

변수나 상수의 부호를 변경

단항 연산자(Unary Operator)

x가 -10인데, x의 앞에 -를 붙일 수 있다. 

그러면 -10의 -이니깐 값이 10으로 바뀐다. 이런 걸 부호연산자라고 한다.


2. 증감연산자

++, --

변수의 값을 하나 증가시키거나 감소시키는 연산자

 

단항 연산자

x 앞에 붙으면 전위 연산자, 뒤에 붙으면 후위 연산자이다. 후위 연산자가 우선순위가 전위보다 높다. 

 

전위 연산자 

먼저 더하기, 먼저 빼기

 

후위 연산자

나중에 더하기, 나중에 빼기 


(1) 전위 연산자

 

값을 먼저 증가/감소 시키고 증가 감소된 후에 값을 수식에 사용해라.

프로그램은 일반적으로 위에서 아래로 순차적으로 실행이 된다.

 

a를 먼저 증가 시키고, 즉 먼저 a의 10을 11로 만들어라

그러고 나서 x에 넣어라. 그러면 x는 11이다.

 

b를 먼저 빼라, 즉 먼저 b의 10을 9로 만들어라

그러고 나서 y에 넣어라. 그러면 y는 9가 된다.

 

출력 결과 :

a = 11,  x = 11

b = 9, y = 9


(2) 후위 연산자

 

값을 먼저 수식에 사용한 후에 변수를 증가/감소시킨다.

● 프로그램은 순차구조

● x와 y는 선언만 하고 초기화를 안 시켰다. 그러면 그때는 쓰레기 값이 들어가 있다. 

a의 값을 x에 먼저 넣는다. 즉, a의 10을 x에 넣는다.

그리고 나서 내려가기 바로 직전에 a를 11로 만들어라

 

b의 값을 y에 먼저 넣는다. 즉, b의 10을 y에 넣는다.

그리고 나서 내려가기 바로 직전에 b를 9로 만들어라

 

출력 결과 :

a = 11, x = 10

b = 9, y = 10


3. 증감연산자 사용 예

 

● a 변수의 값 10을 11로 만들고 x에 넣어라

● b 변수의 값 10을 y에 넣고 11로 만들어라

 

출력 결과 :

a = 11, b = 11 

x = 11, y = 10


 

printf("++x의 값 = %d \n", ++x);

x의 값을 먼저 더하고 출력해라. 

 

"x = %d\n\n"

문자열 : x =

형식지정자 : %d

이스케이프 문자 : \n

 

printf("y++의 값 = %d\n". y++);

y의 값을 출력하고 y를 증가시켜라


02. 관계연산자

1. 관계연산자 (Relational Operator)

두 개의 피연산자를 비교하는 연산자

결과값은 참(1) 아니면 거짓(0)


2. 관계연산자 사용 예


3. 관계연산자 사용 시 주의점 

 

(1) ==을 하나만 쓰게 되면 안 된다.

이러면 y의 값을 x에 대입한다. 이 수식의 결괏값은 x의 값이 된다.


(2) 이항연산자 잘못된 표현식

이렇게 쓰면 오류가 난다. 그리고 답도 틀려진다.

예를 들어 2 < 8 < 5 이면 2 < 8을 먼저 계산하므로 참으로 1이 나온다. 그다음 계산으로 1 < 5를 계산하여 답은 또 참으로 1이 된다. 즉, 결과는 참이 된다.  근데, 2 < 8 < 5가 참인가? 아니다. 말이 안 된다. 

 

 

이것은 이항연산자로써 이렇게 끊어서 사용해야 된다.

(2 < x) 와 (x < 5)가 둘 다 참이어야만 전체 수식의 값이 참이 된다.


(3) 실수를 비교하는 경우 → 실수는 약간의 오차가 있다. 

굉장히 큰 수에다가 아주 작은 수를 더한다.

눈으로 봤을 때에도 오른쪽의 1e32과 왼쪽의 1e32는 같으니깐 아무리 작은 수를 더해도 더한 값이 더 그걸 알 수 있다.

그렇다면 결과값은 참이여야 되는데, 컴퓨터에서는 결과가 거짓이 나온다.


03. 논리연산자

1. 논리연산자 (Logical Operator)

여러 개의 조건을 조합하여 참과 거짓을 따지는 연산자

결과값은 참(1) 아니면 거짓(0)

 

앰퍼샌드(Ampersand, &) 

&& 두 개 쓰면 보통 AND 표시라고 한다.


(1) 논리 연산자의 계산 과정

논리 연산의 결과값은 항상 1 또는 0

1과 2는 달라서 0이 된다. 2와 2는 같아서 1이 된다.

||는 OR 연산이라 하나면  참이어도 참이니 결과는 1 참이 된다.


(2) 침과 거짓의 표현 방법

관계/논리 수식이 만약 참이면 1, 거짓이면 0이 생성된다.

피연사자의 참, 거짓 판정하는 것은 0이 아니면 참, 0이면 거짓으로 판단한다. 

-3도 참이라고 본다.

 

NOT 연산자를 적용하는 경우

0은 거짓이므로 NOT 하면 결과는 참이 된다.

3은 참이므로 NOT하면 결과는 거짓이 된다.

-3도 참이므로 NOT하면 결과는 거짓이 된다.


2. AND와 OR 연산자

AND 연산자 (&&)

두 개의 피연산자가 모두 참일 때만 연산 결과가 참이 된다.


OR 연산자 (||)

두 개의 피연사 중 하나 이상 참일 때 연산 결과가 참이 된다.


(1) 논리 연산자의 예


(2) 단축 계산

&& 연산자의 경우

첫 번째 피연산자가 거짓이면 다른 피연산자들을 계산하지 않는다.

 

|| 연산자의 경우

첫번째 피연산자가 참이면 다른 피연사자들을 계산하지 않는다.


3. NOT 연산자

피연산자의 값이 참이면 연산의 결과값은 거짓

피연산자의 값이 거짓이면 연산의 결과값은 참


4. 그 외 연산자

(1) 조건 연산자

삼항 연산자 = 조건 연산자 

a가 b보다 크면 a를 max에 넣고, a가 b보다 크지 않으면  b를 max에 넣는다.


(2) 콤마 연산자

 

콤마로 연결된 수식은 순차적으로 계산한다.

max에 a를 넣고 그다음에 이어서 min에 b를 넣는다.


(3) 비트 연산자

비트 연산자는

1비트 1비트씩을 계산할 때 사용한다.


 

728x90
반응형
LIST

'CS > C언어1' 카테고리의 다른 글

다중 IF 문  (2) 2023.12.05
조건문 IF  (0) 2023.12.04
수식과 산술 연산자 (나머지 연산, 대입 연산자, Cast 연산자)  (1) 2023.12.01
데이터형 (sizeof(), 부동 소수점 방식, 제어문자)  (2) 2023.11.22
변수와 상수  (1) 2023.11.22