선순위
|
종류
|
연산자
|
1
|
증감 연산자 및 Null 조건부 연산자
|
후위 ++ -- ?. ?[]
|
2
|
증감 연산자
|
전위 ++, --
|
3
|
산술 연산자
|
* / %
|
4
|
산술 연산자
|
+ -
|
5
|
시프트 연산자
|
<< >>
|
6
|
관계 연산자
|
< > <= >= is as
|
7
|
관계 연산자
|
== !=
|
8
|
비트 논리 연산자
|
&
|
9
|
비트 논리 연산자
|
^
|
10
|
비트 논리 연산자
|
|
|
11
|
논리 연산자
|
&&
|
12
|
논리 연산자
|
||
|
13
|
Null 병합 연산자
|
??
|
14
|
조건 연산자
|
?:
|
15
|
할당 연산자
|
= *= /= %= += -=
<<= >>= &= ^= |=
|
연산자는 하나의 약속.
어떤 연산을 할지 연산자라는 약속된 기호를 사용해 정하게 됨.
그리고 연산자는 피연산자를 이용해 연산을 합니다.
x + y
x 와 y 는 피연산자이며 + 는 연산자 입니다.
주로 사용하는 연산자는 + - * / %
더하기, 빼기, 곱하기, 나누기, %는 나머지를 연산해 줍니다
그리고 + 는 숨겨진 연산 기능이 있음. 문자열의 결합이 가능.
string str1 = "가";
string str2 = "나";
string str3 = str1 + str2;
출력결과 : 가나
증감 연산자
증감 연산자는 증가 연산자와 감소 연산자의 줄임말이다.
증감 연산자는 전위 연산자와 후위 연산자가 존재
전위 연산자는 값을 먼저 증감 시키고 연산이 된다고 하면
후위 연산자는 연산된 후에 그 값이 증감된다고 보면 된다
int a = 10;
int b = a++;
int c = ++a;
b에는 10이라는 값이 먼저 b에 대입되고 그 다음 a의 값이 증가되었다 즉 b는 10이 출력되고 a는 11이 출력된다.
c에는 10이라는 값이 먼저 증감되어 11이라는 값이 c에 대입된다. 즉 c는 11이 출력된다.
그리고 이 증감 연산자는 열거 형식에도 사용이 가능
다음은 관계 연산자와 비트 연산자에 대해 알아보기 전에
참과 거짓에 대해 먼저 설명을 함.
참과 거짓은 bool 자료형에서 나온 true 값과 false 값이다.
이 연산자들의 관계도 true 와 false의 경계가 있다.
0과 1 밖에 표현을 하지 못하는 컴퓨터에게는 최적의 방법.
이 연산자가 맞다면 true인 1을 표현하고,
틀리다면 0을 표현함.
다만 꼭 알고 넘어가야 하는 사실이 있음
이 참과 거짓의 연산은 true와 false로 표현하기 때문에 일반적인 수치 데이터에는 값이 들어가지 않음.
그렇기에 true와 false의 표현이 가능한 bool 자료형에만 연산의 값이 들어감.
int x;
x = 3>4; 불가능
bool y;
y = 3>4; 가능
관계 연산자
< ( 초과 ) x > y
|
x가 y보다 크면 True 아니면 False
|
> ( 초과 ) x < y
|
y가 x보다 크면 True 아니면 False
|
<= ( 이하 ) x <= y
|
x가 y이하면 True 아니면 False
|
>= ( 이상 ) x >= y
|
x가 y이상이면 True 아니면 False
|
== ( 같다 ) x == y
|
x가 y와 같으면 True 아니면 False
|
!= ( 아니다 ) x != y
|
x가 y와 다르면 True 아니면 False
|
논리 연산자
A
|
B
|
A && B
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
0
|
0
|
0
|
A
|
B
|
A || B
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
A
|
!A
|
0
|
1
|
1
|
0
|
조건 연산자
a ? b : c
삼항 연산자라고도 부름
이 조건 연산자는 a에 조건식이 들어가고
b와 c에는 각각의 결과를 나타냅니다.
a = 10;
( a == 10 ) ? "true" : "false"
a가 10과 같다면 ture를 출력하고 아니면 false를 출력하라
널 조건부 연산자
이 기능은 C# 6.0에서 도입된 기능
널 조건부 연산자는 배우지 않은 내용이 들어있음.
추후에 복습.
널 조건부 연산자는 객체가 Null이라면 접근을 하지 않고 Null이 아니라면 접근을 하게 해줌.
간단하게 예제로 설명
ArrayList a = null;
a?.Add("test1");
a?.Add("test2");
Console.WriteLine( $"{a?[0]}" );
Console.WriteLine( $"{a?[1]}" );
출력결과 :
출력결과 :
a가 null이기 때문에 접근하지 않음.
ArrayList a = new ArrayList();
a?.Add("test1");
a?.Add("test2");
Console.WriteLine( $"{a?[0]}" );
Console.WriteLine( $"{a?[1]}" );
출력결과 : test1
출력결과 : test2
null이 아니면 접근.
a?[ ] 는 null이 아니라면 출력을 해주는 연산자
'C#' 카테고리의 다른 글
C# 메소드 오버로딩 (0) | 2022.06.01 |
---|---|
C# 매개변수와 참조, 출력 (0) | 2022.06.01 |
C# 메소드 (0) | 2022.04.29 |
C# 문자열 보간, 서식, 분할, 변형, 찾기 (0) | 2022.04.27 |
C# Object 자료형, 박싱과 언박싱 (0) | 2022.04.27 |