C# 연산자 – C# 연산자 종합 가이드
C# 연산자
C#의 모든 연산자 카테고리를 탐구하고 코드에서 효과적으로 적용하는 방법을 배우세요.
연산자는 하나 이상의 피연산자(변수, 상수, 표현식)에 동작을 수행하는 기호입니다. C#에서 연산자는 수행하는 연산 유형(산술, 논리, 비트와이즈 등)에 따라 그룹화됩니다.
1. 기본 대입 연산자
대입 연산자(=)는 변수에 값을 저장합니다.
double x;
x = 50.05;
예제 1: 대입 연산자 사용
using System;
namespace OperatorDemo
{
class AssignmentOperator
{
public static void Main(string[] args)
{
int firstNumber, secondNumber;
firstNumber = 10;
Console.WriteLine("First Number = {0}", firstNumber);
secondNumber = firstNumber;
Console.WriteLine("Second Number = {0}", secondNumber);
}
}
}
출력:
First Number = 10
Second Number = 10
2. 산술 연산자
산술 연산자는 수학적 계산을 수행합니다.
int x = 5;
int y = 10;
int z = x + y; // z = 15
C# 산술 연산자
| 연산자 | 이름 | 예제 |
| + | 덧셈 | 6 + 3 = 9 |
| - | 뺄셈 | 10 - 6 = 4 |
| * | 곱셈 | 4 * 2 = 8 |
| / | 나눗셈 | 10 / 5 = 2 |
| % | 모듈로(나머지) | 16 % 3 = 1 |
예제 2: 산술 연산
using System;
namespace OperatorDemo
{
class ArithmeticOperator
{
public static void Main(string[] args)
{
double firstNumber = 14.40, secondNumber = 4.60, result;
int num1 = 26, num2 = 4, rem;
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber - secondNumber;
Console.WriteLine("{0} - {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber * secondNumber;
Console.WriteLine("{0} * {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber / secondNumber;
Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result);
rem = num1 % num2;
Console.WriteLine("{0} % {1} = {2}", num1, num2, rem);
}
}
}
출력:
14.4 + 4.6 = 19
14.4 - 4.6 = 9.8
14.4 * 4.6 = 66.24
14.4 / 4.6 = 3.1304347826087
26 % 4 = 2
3. 관계 연산자
이 연산자들은 두 피연산자를 비교하고 불리언 결과를 반환합니다.
C# 관계 연산자
| 연산자 | 이름 | 예제 |
| == | 같음 | 6 == 4 → false |
| > | 보다 큼 | 3 > -1 → true |
| < | 보다 작음 | 5 < 3 → false |
| >= | 보다 크거나 같음 | 4 >= 4 → true |
| <= | 보다 작거나 같음 | 5 <= 3 → false |
| != | 다름 | 10 != 2 → true |
예제 3: 관계 연산 확인
using System;
namespace OperatorDemo
{
class RelationalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
result = (firstNumber == secondNumber);
Console.WriteLine("{0} == {1} returns {2}", firstNumber, secondNumber, result);
result = (firstNumber > secondNumber);
Console.WriteLine("{0} > {1} returns {2}", firstNumber, secondNumber, result);
result = (firstNumber < secondNumber);
Console.WriteLine("{0} < {1} returns {2}", firstNumber, secondNumber, result);
result = (firstNumber >= secondNumber);
Console.WriteLine("{0} >= {1} returns {2}", firstNumber, secondNumber, result);
result = (firstNumber <= secondNumber);
Console.WriteLine("{0} <= {1} returns {2}", firstNumber, secondNumber, result);
result = (firstNumber != secondNumber);
Console.WriteLine("{0} != {1} returns {2}", firstNumber, secondNumber, result);
}
}
}
출력:
10 == 20 returns False
10 > 20 returns False
10 < 20 returns True
10 >= 20 returns False
10 <= 20 returns True
10 != 20 returns True
4. 논리 연산자
논리 연산자는 불리언 표현식을 평가합니다.
C# 논리 연산자
| 피연산자 1 | 피연산자 2 | OR (||) | AND (&&) |
| true | true | true | true |
| true | false | true | false |
| false | true | true | false |
| false | false | false | false |
- 어느 피연산자든
true면 OR 연산자는 true를 반환합니다.
- 두 피연산자 모두
true여야 AND가 true를 반환합니다.
예제 4: 논리 연산자
using System;
namespace OperatorDemo
{
class LogicalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
result = (firstNumber == secondNumber) || (firstNumber > 5);
Console.WriteLine(result);
result = (firstNumber == secondNumber) && (firstNumber > 5);
Console.WriteLine(result);
}
}
}
출력:
True
False
5. 단항 연산자
단항 연산자는 단일 피연산자에 작용합니다.
C# 단항 연산자
| 연산자 | 이름 | 설명 |
| + | 단항 플러스 | 부호 유지 |
| - | 단항 마이너스 | 부호 반전 |
| ++ | 증가 | 1 증가 |
| -- | 감소 | 1 감소 |
| ! | 논리 NOT | 불리언 반전 |
예제 5: 단항 연산자
using System;
namespace OperatorDemo
{
class UnaryOperator
{
public static void Main(string[] args)
{
int number = 10, result;
bool flag = true;
result = +number;
Console.WriteLine("+number = " + result);
result = -number;
Console.WriteLine("-number = " + result);
result = ++number;
Console.WriteLine("++number = " + result);
result = --number;
Console.WriteLine("--number = " + result);
Console.WriteLine("!flag = " + (!flag));
}
}
}
출력:
+number = 10
-number = -10
++number = 11
--number = 10
!flag = False
예제 6: 전위 vs 후위 증가
using System;
namespace OperatorDemo
{
class UnaryOperator
{
public static void Main(string[] args)
{
int number = 10;
Console.WriteLine(number++); // 10
Console.WriteLine(number); // 11
Console.WriteLine(++number); // 12
Console.WriteLine(number); // 12
}
}
}
출력:
10
11
12
12
6. 삼항 연산자
삼항 연산자(? :)는 if-else 문을 한 줄로 압축합니다.
variable = Condition ? Expression1 : Expression2;
Condition이 true면 Expression1이 평가되고, 그렇지 않으면 Expression2가 사용됩니다.
예제 7: 삼항 연산자 사용
using System;
namespace OperatorDemo
{
class TernaryOperator
{
public static void Main(string[] args)
{
int number = 10;
string result = (number % 2 == 0) ? "Even Number" : "Odd Number";
Console.WriteLine("{0} is {1}", number, result);
}
}
}
출력:
10 is Even Number
자세한 내용은 C# 삼항 연산자를 참조하세요.
7. 비트와이즈 & 비트 시프트 연산자
이 연산자들은 정수 타입의 개별 비트를 조작합니다.
C# 비트와이즈 & 비트 시프트 연산자
| 연산자 | 이름 |
| ~ | 비트와이즈 보수 |
| & | AND |
| | | OR |
| ^ | XOR |
| << | 왼쪽 시프트 |
| >> | 오른쪽 시프트 |
예제 8: 비트와이즈 연산
using System;
namespace OperatorDemo
{
class BitOperator
{
public static void Main(string[] args)
{
int firstNumber = 10, secondNumber = 20, result;
result = ~firstNumber;
Console.WriteLine("~{0} = {1}", firstNumber, result);
result = firstNumber & secondNumber;
Console.WriteLine("{0} & {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber | secondNumber;
Console.WriteLine("{0} | {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber ^ secondNumber;
Console.WriteLine("{0} ^ {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber << 2;
Console.WriteLine("{0} << 2 = {1}", firstNumber, result);
result = firstNumber >> 2;
Console.WriteLine("{0} >> 2 = {1}", firstNumber, result);
}
}
}
출력:
~10 = -11
10 & 20 = 0
10 | 20 = 30
10 ^ 20 = 30
10 << 2 = 40
10 >> 2 = 2
더 깊은 통찰을 위해 C# 비트와이즈 및 비트 시프트 연산자 가이드를 방문하세요.
8. 복합 대입 연산자
이 연산자들은 산술 연산과 대입을 결합합니다.
C# 복합 대입 연산자
| 연산자 | 이름 | 예제 | 동등한 표현 |
| += | 덧셈 대입 | x += 5 | x = x + 5 |
| -= | 뺄셈 대입 | x -= 5 | x = x - 5 |
| *= | 곱셈 대입 | x *= 5 | x = x * 5 |
| /= | 나눗셈 대입 | x /= 5 | x = x / 5 |
| %= | 모듈로 대입 | x %= 5 | x = x % 5 |
| &= | 비트와이즈 AND 대입 | x &= 5 | x = x & 5 |
| |= | 비트와이즈 OR 대입 | x |= 5 | x = x | 5 |
| ^= | 비트와이즈 XOR 대입 | x ^= 5 | x = x ^ 5 |
| <<= | 왼쪽 시프트 대입 | x <<= 5 | x = x << 5 |
| >>= | 오른쪽 시프트 대입 | x >>= 5 | x = x >> 5 |
| => | 람다 연산자 | x => x * x | x의 제곱 반환 |
예제 9: 복합 대입 사용
using System;
namespace OperatorDemo
{
class CompoundOperator
{
public static void Main(string[] args)
{
int number = 10;
number += 5;
Console.WriteLine(number);
number -= 3;
Console.WriteLine(number);
number *= 2;
Console.WriteLine(number);
number /= 3;
Console.WriteLine(number);
number %= 3;
Console.WriteLine(number);
number &= 10;
Console.WriteLine(number);
number |= 14;
Console.WriteLine(number);
number ^= 12;
Console.WriteLine(number);
number <<= 2;
Console.WriteLine(number);
number >>= 3;
Console.WriteLine(number);
}
}
}
출력:
15
12
24
8
2
2
14
2
8
1
나중 튜토리얼에서 람다 표현식을 자세히 다룰 것입니다.