🧮 C#의 연산자
산술 연산자
| 연산자 | 설명 | 예시 |
|---|
+ | 덧셈 | a + b |
- | 뺄셈 | a - b |
* | 곱셈 | a * b |
/ | 나눗셈 | a / b |
% | 나머지 연산 | a % b |
비교 연산자
| 연산자 | 설명 | 예시 |
|---|
== | 값이 같은가 | a == b |
!= | 값이 다른가 | a != b |
> | 큰가 | a > b |
< | 작은가 | a < b |
>= | 크거나 같은가 | a >= b |
<= | 작거나 같은가 | a <= b |
논리 연산자
| 연산자 | 설명 | 예시 |
|---|
&& | AND (둘 다 true일 때) | a > 5 && b < 10 |
| ` | | ` |
! | NOT (부정) | !(a > 5) |
비트 및 시프트 연산자
| 연산자 | 설명 | 예시 |
|---|
& | AND | a & b |
| ` | ` | OR |
^ | XOR | a ^ b |
~ | NOT | ~a |
<< | 왼쪽 시프트 | a << 1 |
>> | 오른쪽 시프트 | a >> 1 |
대입 연산자
| 연산자 | 설명 | 예시 |
|---|
= | 값을 변수에 대입 | a = 10 |
+= | 더한 후 대입 | a += 5 |
-= | 뺀 후 대입 | a -= 5 |
*= | 곱한 후 대입 | a *= 5 |
/= | 나눈 후 대입 | a /= 5 |
%= | 나머지를 구한 후 대입 | a %= 5 |
증감 연산자
| 연산자 | 설명 | 예시 |
|---|
++ | 1 증가 | a++, ++a |
-- | 1 감소 | a--, --a |
조건(삼항) 연산자
| 연산자 | 설명 | 예시 |
|---|
? : | 조건에 따라 값 선택 | a > b ? a : b |
코드 예시
using System;
class OperatorExamples
{
static void Main()
{
int a = 10, b = 3;
Console.WriteLine("\n 산술 연산자");
Console.WriteLine($"a + b = {a + b}");
Console.WriteLine($"a - b = {a - b}");
Console.WriteLine($"a * b = {a * b}");
Console.WriteLine($"a / b = {a / b}");
Console.WriteLine($"a % b = {a % b}");
Console.WriteLine("\n 대입 연산자");
int c = 5;
c += 2;
Console.WriteLine($"c += 2 -> {c}");
c *= 3;
Console.WriteLine($"c *= 3 -> {c}");
Console.WriteLine("\n 비교 연산자");
Console.WriteLine($"a == b -> {a == b}");
Console.WriteLine($"a > b -> {a > b}");
Console.WriteLine("\n 논리 연산자");
bool result = (a > 5) && (b < 5);
Console.WriteLine($"(a > 5) && (b < 5) -> {result}");
Console.WriteLine("\n 증감 연산자");
int d = 1;
Console.WriteLine($"d++ -> {d++} (출력 후 증가)");
Console.WriteLine($"++d -> {++d} (증가 후 출력)");
Console.WriteLine("\n 조건(삼항) 연산자");
int max = (a > b) ? a : b;
Console.WriteLine($"a > b ? a : b -> {max}");
Console.WriteLine("\n 비트 연산자");
int x = 6;
int y = 3;
Console.WriteLine($"x & y -> {x & y}");
Console.WriteLine($"x | y -> {x | y}");
Console.WriteLine($"x ^ y -> {x ^ y}");
Console.WriteLine($"~x -> {~x}");
Console.WriteLine($"x << 1 -> {x << 1}");
Console.WriteLine($"x >> 1 -> {x >> 1}");
}
}
🥇 연산자 우선순위
- 여러 연산자가 있는 식에서 연산자가 수행되는 순서를 결정한다.
- 연산자 우선순위에 따라 연산의 결과가 달라질 수 있다.
연산자 우선순위 요약표
| 우선순위 | 연산자 종류 | 예시 | 결합 방향 |
|---|
| 1 | 괄호 | (a + b) | 왼 → 오 |
| 2 | 단항 연산자 | ++a, --a, !a, -a | 오른 → 왼 |
| 3 | 곱셈, 나눗셈, 나머지 | *, /, % | 왼 → 오 |
| 4 | 덧셈, 뺄셈 | +, - | 왼 → 오 |
| 5 | 관계 연산자 | <, <=, >, >= | 왼 → 오 |
| 6 | 동등/부등 비교 연산자 | ==, != | 왼 → 오 |
| 7 | 비트 AND | & | 왼 → 오 |
| 8 | 비트 XOR | ^ | 왼 → 오 |
| 9 | 비트 OR | ` | ` |
| 10 | 논리 AND | && | 왼 → 오 |
| 11 | 논리 OR | ` | |
| 12 | 조건(삼항) 연산자 | 조건 ? 값1 : 값2 | 오른 → 왼 |
| 13 | 대입 연산자 | =, +=, -=, *= 등 | 오른 → 왼 |
우선순위를 암기하기 보다는 괄호로 명확하게 표현하는 것이 좋다.