29. [기본 문법 활용하기] 연산자
수제비 2022 정보처리기사 실기 수험서를 보고 공부한 기록입니다.
👉연산자(Operator) 개념
- 연산자는 프로그램 실행을 위해 연산을 표현하는 기호이다
- 연산자에는 산술 연산자, 시프트 연산자, 관계 연산자, 논리 연산자 등이 있다
👉연산자 종류
- 증감 연산자: ++x, x++, --x, x--
- 산술 연산자: +, -, *, /, %
- 시프트 연산자: ≪, ≫
- 관계 연산자: >, <, ≥, ≤, ==, !=
- 비트 연산자: &, |, ^, ~
- 논리 연산자: &&, ||, !
- 삼항 연산자: (조건식)? a : b
- 대입 연산자: =, +=, -=, *=, /=, %=
👉연산자 우선순위
우선순위 | 연산자 | 항의 개수 | 유형 |
---|---|---|---|
0 | ( ) | - | 괄호 |
1 | x++ | 단항 연산자 | 증감 연산자 |
x-- | 단항 연산자 | 증감 연산자 | |
2 | ++x | 단항 연산자 | 증감 연산자 |
--x | 단항 연산자 | 증감 연산자 | |
! | 단항 연산자 | 논리 연산자 | |
~ | 단항 연산자 | 비트 연산자 | |
3 | * | 이항 연산자 | 산술 연산자 |
/ | 이항 연산자 | 산술 연산자 | |
% | 이항 연산자 | 산술 연산자 | |
4 | + | 이항 연산자 | 산술 연산자 |
- | 이항 연산자 | 산술 연산자 | |
5 | ≪ | 이항 연산자 | 시프트 연산자 |
≫ | 이항 연산자 | 시프트 연산자 | |
6 | < | 이항 연산자 | 관계 연산자 |
≤ | 이항 연산자 | 관계 연산자 | |
> | 이항 연산자 | 관계 연산자 | |
≥ | 이항 연산자 | 관계 연산자 | |
7 | \== | 이항 연산자 | 관계 연산자 |
!= | 이항 연산자 | 관계 연산자 | |
8 | & | 이항 연산자 | 비트 연산자 |
9 | ^ | 이항 연산자 | 비트 연산자 |
10 | | | 이항 연산자 | 비트 연산자 |
11 | && | 이항 연산자 | 논리 연산자 |
12 | || | 이항 연산자 | 논리 연산자 |
13 | (조건식)? a : b | 삼항 연산자 | 삼항 연산자 |
14 | \= | 대입 연산자 | 대입 연산자 |
+= | 대입 연산자 | 대입 연산자 | |
-= | 대입 연산자 | 대입 연산자 | |
*= | 대입 연산자 | 대입 연산자 | |
/= | 대입 연산자 | 대입 연산자 | |
%= | 대입 연산자 | 대입 연산자 |
👉연산자 종류 상세
1. 증감 연산자(Increment & Decrement Operator)
- 증감 연산자는 피연산자를 1씩 증가 혹은 1씩 감소시킬 때 사용하는 연산자이다
- ++x : 변수의 값을 1 증가시킨 후에 해당 변수를 사용하는 연산자
- x++ : 변수를 사용한 후에 변수의 값을 1 증가시키는 연산자
- --x : 변수의 값을 1 감소시킨 후에 해당 변수를 사용하는 연산자
- x-- : 변수를 사용한 후에 변수의 값을 1 감소시키는 연산자
■ C 언어 print 함수 증감 연산자
#include <stdio.h>
void main() {
int x=3, y=3;
//x와 y를 3으로 초기화
printf("%d\n", x++);
//x++일 경우 x의 값인 3을 먼저 출력한 후에 x의 값을 1 증가
printf("%d\n",x);
//x의 값인 4를 출력
printf("%d\n",++y);
//++y일 경우 y의 값을 1 증가시킨 후에 y의 값인 4를 출력
printf("%d\n",y);
//y의 값인 4를 출력
}
3
4
4
4
■ C 언어 switch문 증감 연산자 예제
#include <stdio.h>
void main() {
int x=3, y=3;
//x와 y를 3으로 초기화
switch(x++){
case 3: printf("A: %d\n",x); break;
case 4: printf("B: %d\n",x);
}
//x++일 경우 x의 값인 3에 해당하는 case3으로 이동한 후에 x를 1증가 시키므로 case 3 안에 있는 printf를 출력하고 x는 4가 출력
switch(++y){
case 3: printf("C: %d\n", y); break;
case 4: printf("D: %d\n", y);
}
//++y일 경우 y를 1 증가시킨 후에 y의 값인 4에 해당하는 case 4로 이동한 후에 case 4 안에 있는 printf를 출력하고 y는 4가 출력
}
A: 4
D: 4
■ 다른 연산자 함께 사용하는 증감 연산자
#include <stdio.h>
void main(){
int x=3, y=3;
//x와 y를 3으로 초기화
int z=x++ + ++y;
printf("%d %d %d", x,y,z);
//x++일 경우 x의 값인 3을 먼저 연산에 사용하고 x를 증가시키고, ++y일 경우 y의 값을 1증가시킨 후에 y의 값인 4를 연산에 사용하므로 3+4인 7이 z에 저장됨
}
4 4 7
■ 단순 증감 연산자
#include <stdio.h>
void main(){
int x=3, y=3;
//x와 y를 3으로 초기화
x++;
//x++가 단독으로 있을 경우 단순히 1만 증가
++y;
//++y가 단독으로 있을 경우 단순히 1만 증가
printf("%d %d", x,y);
}
4 4
2. 산술 연산자(Arithmetic Operator)
산술 연산자는 +, -와 같이 가장 일반적으로 사용되는 연산자이다
연산자 | 내용 |
---|---|
+ | -양쪽의 값을 더하는 연산자 -문자열끼리 더할 경우 문자열을 연결 |
- | -왼쪽 값에서 오른쪽 값을 빼는 연산자 |
* | -두 개의 값을 곱하는 연산자 |
/ | -왼쪽 값을 오른쪽 값으로 나누는 연산자 |
% | -왼쪽 값을 오른쪽 값으로 나눈 나머지를 계산하는 연산자 |
3. 시프트 연산자(Shift Operator)
시프트 연산자는 비트를 이동시키는 연산자이다
연산자 | 내용 |
---|---|
<< | 왼쪽 값을 오른쪽 값만큼 비트를 왼쪽으로 이동하는 연산자 |
>> | 왼쪽 값에 오른쪽 값만큼의 부호 비트를 채우면서 오른쪽으로 이동하는 연산자 |
■ 시프트 연산자 자바 코드 예제
public class Soojebi{
public static void main(String[] args){
System.out.print(3<<2);
//12를 출력함
System.out.print(8>>3);
//1을 출력함
}
}
121
4. 관계 연산자(Relation Operator)
관계 연산자는 두 피연산자 사이의 크기를 비교하는 연산자이다
연산자 | 내용 |
---|---|
> | 왼쪽에 있는 값이 오른쪽에 있는 값보다 크면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
< | 왼쪽에 있는 값이 오른쪽에 있는 값보다 작으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
>= | 왼쪽에 있는 값이 오른쪽에 있는 값보다 크거나 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
<= | 왼쪽에 있는 값이 오른쪽에 있는 값보다 작거나 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
\== | 왼쪽에 있는 값이 오른쪽에 있는 값과 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
!= | 왼쪽에 있는 값이 오른쪽에 있는 값과 다르면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
■ C 언어 관계 연산자
#include <stdio.h>
void main(){
printf("%d\n", 3==3);
//관계 연산 결과가 참일 때 출력
printf("%d\n", 5==3);
//관계 연산 결과가 거짓일 때 출력
}
1
0
■ 자바 관계 연산자
class Soojebi{
public static void main(String[] args){
System.out.println(3==3);
//관계 연산 결과가 참일 때 출력
System.out.println(5==3);
//관계 연산 결과가 거짓일 때 출력
}
}
true
false
■ 파이썬 관계 연산자
printf(3==3)
#관계 연산 결과가 참일 때 출력
printf(5==3)
#관계 연산 결과가 거짓일 때 출력
True
False
5. 비트 연산자(Bit Operator)
비트 연산자는 0과 1의 각 자리에 대한 연산을 수행하는 연산자이다
연산자 | 내용 |
---|---|
& | 두 값을 비트로 연산하여 같은 비트의 값이 모두 1이면 해당 비트 값이 1이 되고, 그렇지 않으면 0이 되는 연산자(AND 연산자) |
| | 두 값을 비트로 연산하여 같은 비트의 값이 하나라도 1이면 해당 비트 값이 1이 되고, 그렇지 않으면 0이 되는 연산자(OR 연산자) |
^ | 두 값을 비트로 연산하여 같은 비트의 값이 서로 다르면 해당 비트 값이 1이 되고, 그렇지 않으면 0이 되는 연산자(XOR 연산자) |
~ | 모든 비트의 값을 반대로 바꾸는 반전 기능을 하는 연산자(NOT 연산자) |
■ 비트 연산자
#include <stdio.h>
void main(){
printf("%d\n", 13 & 10);
//13과 10에 대해 비트끼리 AND 연산
printf("%d\n", 13 | 10);
//13과 10에 대해 비트끼리 OR 연산
printf("%d\n", 13 ^ 10);
//13과 10에 대해 비트끼리 XOR 연산
printf("%d\n", ~13);
//13과 10에 대해 비트끼리 NOT 연산
}
8
15
7
-14
6. 논리 연산자(Logic Operator)
논리 연산자는 두 피연산자 사이의 논리적인 관계를 정의하는 연산자이다
연산자 | 내용 |
---|---|
&& | 두 개의 논리값이 모두 참이면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자(AND 연산자) |
|| | 두 개의 논리값 중 하나가 참이면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자(OR 연산자) |
7. 삼항 연산자(Ternary Operator)
삼항 연산자는 조건이 참일 경우 물음표(?)와 콜론(:) 사이의 값을 반환하고, 조건이 거짓일 경우 콜론(:)과 세미콜론(;) 사이의 값을 반환하는 연산자이다
조건식 ? 참일때값 : 거짓일때값;
8. 대입 연산자(Assignment Operator)
- 대입 연산자는 변수에 값을 대입할 때 사용하는 연산자이다
- 오른쪽에 있는 값을 이용해 왼쪽의 변수에 값을 대입한다
연산자 | 내용 |
---|---|
= | 왼쪽의 변수에 오른쪽의 값을 대입하는 연산자 |
+= | 왼쪽의 변수에 오른쪽의 값을 더한 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
-= | 왼쪽의 변수에 오른쪽의 값을 뺀 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
*= | 왼쪽의 변수에 오른쪽의 값을 곱한 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
/= | 왼쪽의 변수를 오른쪽의 값으로 나눈 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
%= | 왼쪽의 변수를 오른쪽의 값으로 나눈 후, 그 나머지를 왼쪽의 변수에 대입하는 연산자 |
, | 동시에 여러 개의 값을 대입하는 연산자(Swap 연산자) 파이썬에서만 제공하는 연산자 |
Author And Source
이 문제에 관하여(29. [기본 문법 활용하기] 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@y55nms/29.-기본-문법-활용하기-연산자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)