[C#] 연산자

Kim Yuhyeon·2022년 3월 30일
0

게임개발

목록 보기
7/135

C#은 다른 프로그래밍 언어와 비슷하게 수식 연산자, 논리 연산자, 조건 연산자등 다양한 연산자들을 제공하고 있다. 아래 표는 각 카테코리별 연산자 및 그 샘플을 예시한 것이다.

연산자 타입연산자예제
산술 연산자+, -, *, /, %int a = (x + y - z) * (b / c) % d;
할당 연산자=, +=, -=, *=, /=, %=int a = 100;
sum += a;
[설명] sum += a 는 sum = sum + a 를 축약한 표현이다.
증감 연산자++, --int i = 1;
i++;
[설명] i++ 는 i = i + 1 를 축약한 표현이다.
논리 연산자&& (And), \|\| (Or), ! (Not)if ((a > 1 && b < 0) || c == 1 || !d)
관계/비교 연산자<, >, ==, !=, >=, <=if (a <= b)
비트 연산자& (AND), | (OR), ^ (XOR)byte a=7;
byte b=(a & 3) | 4;
[설명] 비트 연산에서 & 는 둘이 1인 경우만 1이 되고 (예: 1 & 1 = 1), | 는 둘 중에 하나라도 1인 경우 1이 되며, ^ 는 둘 중에 하나만 1 인 경우 1이 된다.
Shift 연산자>>, <<int i=2;
i = i << 5;
[설명] i의 값을 왼쪽으로 5 비트 이동한다. 결과값은 2의 6승 즉 64가 된다.
조건 연산자?
?? (C# 3.0 이상만 지원)
int val = (a > b) ? a : b;
[설명] a가 b보다 크면 val에 a 값을 대입하고, 같거나 작으면 b 값을 대입한다
string s = str ?? "(널)";
[설명] 변수 str가 null 이면 "(널)" 이라는 문자열을 s 에 대입한다. null 이 아니면 str의 값을 s 에 대입.

?? 연산자

?? 연산자는 Null-coalescing operator라고 불리우는 특별한 연산자로서 C# 3.0 이상에서 지원하는 연산자이다.

  • ?? 왼쪽 피연산자의 값이 NULL인 경우
    ?? 뒤의 피연산자 값을 리턴

  • ?? 왼쪽 피연산자의 값이 NULL이 아닌 경우
    ?? 앞의 피연산자 값을 리턴한다.

?? 연산자는 왼쪽 피연산자가 NULL이 허용되는 데이터 타입인 경우에만 사용된다.
ex. int 타입은 NULL을 가질 수 없으므로 허용되지 않지만, Nullable<int>int? 타입은 허용된다.

int? i = null;
i = i ?? 0;

string s = null;
s = s ?? string.Empty;

💡 참고 포스팅

[예제로 배우는 C# 프로그래미밍] 기초 문법 - C# 연산자

0개의 댓글