수제비 2022 정보처리기사 실기 수험서를 보고 공부한 기록입니다.
우선순위 | 연산자 | 항의 개수 | 유형 |
---|---|---|---|
0 | ( ) | - | 괄호 |
1 | x++ | 단항 연산자 | 증감 연산자 |
x-- | 단항 연산자 | 증감 연산자 | |
2 | ++x | 단항 연산자 | 증감 연산자 |
--x | 단항 연산자 | 증감 연산자 | |
! | 단항 연산자 | 논리 연산자 | |
~ | 단항 연산자 | 비트 연산자 | |
3 | * | 이항 연산자 | 산술 연산자 |
/ | 이항 연산자 | 산술 연산자 | |
% | 이항 연산자 | 산술 연산자 | |
4 | + | 이항 연산자 | 산술 연산자 |
- | 이항 연산자 | 산술 연산자 | |
5 | ≪ | 이항 연산자 | 시프트 연산자 |
≫ | 이항 연산자 | 시프트 연산자 | |
6 | < | 이항 연산자 | 관계 연산자 |
≤ | 이항 연산자 | 관계 연산자 | |
> | 이항 연산자 | 관계 연산자 | |
≥ | 이항 연산자 | 관계 연산자 | |
7 | \== | 이항 연산자 | 관계 연산자 |
!= | 이항 연산자 | 관계 연산자 | |
8 | & | 이항 연산자 | 비트 연산자 |
9 | ^ | 이항 연산자 | 비트 연산자 |
10 | | | 이항 연산자 | 비트 연산자 |
11 | && | 이항 연산자 | 논리 연산자 |
12 | || | 이항 연산자 | 논리 연산자 |
13 | (조건식)? a : b | 삼항 연산자 | 삼항 연산자 |
14 | \= | 대입 연산자 | 대입 연산자 |
+= | 대입 연산자 | 대입 연산자 | |
-= | 대입 연산자 | 대입 연산자 | |
*= | 대입 연산자 | 대입 연산자 | |
/= | 대입 연산자 | 대입 연산자 | |
%= | 대입 연산자 | 대입 연산자 |
■ 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
산술 연산자는 +, -와 같이 가장 일반적으로 사용되는 연산자이다
연산자 | 내용 |
---|---|
+ | -양쪽의 값을 더하는 연산자 -문자열끼리 더할 경우 문자열을 연결 |
- | -왼쪽 값에서 오른쪽 값을 빼는 연산자 |
* | -두 개의 값을 곱하는 연산자 |
/ | -왼쪽 값을 오른쪽 값으로 나누는 연산자 |
% | -왼쪽 값을 오른쪽 값으로 나눈 나머지를 계산하는 연산자 |
시프트 연산자는 비트를 이동시키는 연산자이다
연산자 | 내용 |
---|---|
<< | 왼쪽 값을 오른쪽 값만큼 비트를 왼쪽으로 이동하는 연산자 |
>> | 왼쪽 값에 오른쪽 값만큼의 부호 비트를 채우면서 오른쪽으로 이동하는 연산자 |
■ 시프트 연산자 자바 코드 예제
public class Soojebi{
public static void main(String[] args){
System.out.print(3<<2);
//12를 출력함
System.out.print(8>>3);
//1을 출력함
}
}
121
관계 연산자는 두 피연산자 사이의 크기를 비교하는 연산자이다
연산자 | 내용 |
---|---|
> | 왼쪽에 있는 값이 오른쪽에 있는 값보다 크면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
< | 왼쪽에 있는 값이 오른쪽에 있는 값보다 작으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
>= | 왼쪽에 있는 값이 오른쪽에 있는 값보다 크거나 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
<= | 왼쪽에 있는 값이 오른쪽에 있는 값보다 작거나 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
\== | 왼쪽에 있는 값이 오른쪽에 있는 값과 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
!= | 왼쪽에 있는 값이 오른쪽에 있는 값과 다르면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자 |
■ 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
비트 연산자는 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
논리 연산자는 두 피연산자 사이의 논리적인 관계를 정의하는 연산자이다
연산자 | 내용 |
---|---|
&& | 두 개의 논리값이 모두 참이면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자(AND 연산자) |
|| | 두 개의 논리값 중 하나가 참이면 참을 반환하고, 그렇지 않으면 거짓을 반환하는 연산자(OR 연산자) |
삼항 연산자는 조건이 참일 경우 물음표(?)와 콜론(:) 사이의 값을 반환하고, 조건이 거짓일 경우 콜론(:)과 세미콜론(;) 사이의 값을 반환하는 연산자이다
조건식 ? 참일때값 : 거짓일때값;
연산자 | 내용 |
---|---|
= | 왼쪽의 변수에 오른쪽의 값을 대입하는 연산자 |
+= | 왼쪽의 변수에 오른쪽의 값을 더한 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
-= | 왼쪽의 변수에 오른쪽의 값을 뺀 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
*= | 왼쪽의 변수에 오른쪽의 값을 곱한 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
/= | 왼쪽의 변수를 오른쪽의 값으로 나눈 후, 그 결과값을 왼쪽의 변수에 대입하는 연산자 |
%= | 왼쪽의 변수를 오른쪽의 값으로 나눈 후, 그 나머지를 왼쪽의 변수에 대입하는 연산자 |
, | 동시에 여러 개의 값을 대입하는 연산자(Swap 연산자) 파이썬에서만 제공하는 연산자 |