C#

C# 연산자

KJaebee 2022. 5. 2. 23:09
선순위
종류
연산자
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