반응형
연산자 우선순위
여러 개의 연산자가 있는 식에서 우선 순위가 높은 연산자는 우선 순위가 낮은 연산자보다 먼저 계산됩니다.
예를 들어, 다음 식은 더하기 보다 곱하기가 먼저 연산됩니다.
int a = 2 + 2 * 3; Console.WriteLine(a); // output: 8 |
괄호를 사용하여 연산 우선 순위의 계산 순서를 바꿀 수 있습니다.
var a = (2 + 2) * 3; Console.WriteLine(a); // output: 12 |
다음 표는 우선 순위가 높은 것부터 시작하여 낮은 순서대로 연산자를 나열한 것입니다.
각 행의 연산자는 우선 순위가 같습니다.
연산자 | 범주 또는 이름 |
x.y, f(x), a[i], x?.y, x++, x--, x!, new, typeof, checked, unchecked, default, nameof, delegate, sizeof, atackalloc |
기본 |
+x, -x, !x, ~x, ++x, --x, ^x, (T)x, await, x, &*x, true 및 false | 단항 연산자 |
x..y | 범위 |
switch, width | switch 식 및 width 식 |
x*y, x/y, x%y | 곱하기 |
x+y, x-y | 더하기 |
x<<y, x>>y | Shift |
x<y, x>y, x<=y, x>=y, is, as | 관계 및 형식 테스트 |
x==y, x!=y | 같음 |
x & y | 부울 논리 AND 또는 비트 논리 AND |
x ^ y | 부울 논리 XOR 또는 비트 논리 XOR |
x | y | OR 또는 비트 논리 OR |
x && y | 조건부 AND |
x || y | 조건부 OR |
X?? y | Null 병합 연산자 |
C? t:f | 조건 연산자 |
x=y, x+=y, x-=y, x*=y, x/=y, x%=y, x&=y, x|=y, x^=y, x<<=y, x>>=y, => | 할당 및 람다 선언 |
연산자 결합성
연산자의 우선 순위가 같으면 연산자 결합성이 연산의 수행되는 순서를 결정합니다.
- ‘왼쪽 결합성이 있는’ 연산자는 왼쪽에서 오른쪽으로 계산됩니다. 대입 연산자 및 null 병합 연산자 를 제외하고, 모든 이진 연산자는 왼쪽 결합성이 있습니다. 예를 들어, a + b - c는 (a + b) - c로 계산됩니다.
- ‘오른쪽 결합성이 있는’ 연산자는 오른쪽에서 왼쪽으로 계산됩니다.
- 할당 연산자
- null 병합 연산자
- 람다 및 조건부 연산
- ?: 자는 오른쪽 결합형입니다.
예를 들어, x = y = z는 x = (y = z)로 계산됩니다.
괄호를 사용하면 연산자 결합성에 따른 주어진 계산 순서를 변경할 수 있습니다.
static void Main(string[] args)
{
int a = 13 / 5 / 2;
int b = 13 / (5 / 2);
Console.WriteLine($"a = {a}, b = {b}"); // output: a = 1, b = 6
}
반응형
'C# > C#_기초강의' 카테고리의 다른 글
(C#) 반복문: for, foreach (0) | 2023.04.22 |
---|---|
(C#) 제어문: 선택문(Selection statements) if, else, switch (0) | 2023.04.21 |
(C#) 대입 연산자 Assignment operator (0) | 2023.04.21 |
(C#) 연산자: 관계연산자(비교연산자), 논리연산자 (0) | 2023.04.21 |
(C#) 연산자: ++, -- 증가연산자 감소연산자 증감연산자 (0) | 2023.04.21 |