연산자(Operator)란?
- 식에서 수행할 연산을 지정하는 기호이다.
- C#에서는 많은 연산자를 제공한다.
- 대부분의 연산자는 보통 기호나 간단한 단어이다.
- 예 : 3과 4를 더할 때 - 산술연산자 '+'기호를 사용하여 3+4라고 사용한다.
- 연산자는 중복되어 사용될 수 있으며, 하나의 기호가 여러가지 기능을 할 수 있다.
- 예 : 3 + 4 = 7 : '+'산술연산자로 사용되어 계산과 결과는 7이다.
- 예 : "Hello " + "World!" = "Hello World!" : 문자열과 문자열 사이에 있는 '+'는 문자열 연결 연산자로 사용된다.
식 또는 수식(expression)
- 변수나 상수가 연산자에 의해 연결되면 식 또는 수식(expression)이 된다.
- 식은 연산자가 여러 개 사용될 때 우선 순위가 중요하다.
- 예 : 3 + 4 * 5는 '+'와 '' 연산자가 사용되는데 어느 연산자가 먼저 사용되는가에 따라 계산결과가 달라진다. 같은 산술 연산자라도 '+'보다는 ''연산자가 우선순위가 높기에 계산결과 값은 23이 된다.
- 예 : 만약 '+'가 먼저 계산되게 하고 싶다면 괄호를 사용하면 된다.
즉, (3 + 4) * 5 와 같이 사용한다. ( ()는 연산자 우선순위가 가장 높다. )
예제 코드
// 수식은 하나의 결과를 만들어 낸다.
// c = a + b라는 식은 a + b를 계산해서 c에 할당하게 되어 화면 c의 값 30을 출력하게 된다.
int a = 10, b = 20, c;
WriteLine(c = a + b);
연산자(Operator)의 종류
연산자의 분류 | 연산자 |
---|---|
산술 연산자 | +, -, *, /, % |
논리 연산자 | !, ~, &&, || |
비트 연산자 | &, |, ^, <<, >> |
증감 연산자 | ++, -- |
관계 연산자 | ==, !=, <, >, <=, >= |
문자열 연결 연산자 | + |
대입 및 복합 연산자 | =, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^= |
멤버 연산자 | . |
인덱싱 연산자 | [] |
형변환 연산자 | () |
조건 연산자 | ?: |
포인터 및 주소 연산자 | *, ->, & |
Linq 연산자 | => |
연산자 우선순위표
우선운쉬 | 연산기호 | 설명 |
---|---|---|
1 | (), ., [], ->, | 괄호, 결합자, 배열이다. |
2 | *, &, !, --, ++, -, +, sizeof new delete |
단항연산자라고 불리는 것들인데, 여기서 나오는 -, +는 부호를 의미한다. |
3 | *, /, % | 곱셈, 뺄셈 연산자 |
4 | +, - | 덧셈, 뺄셈 연산자 |
5 | <<, >> | 비교 시프트 연산자 |
6 | <, <=, =>, > | 비교 연산자 |
7 | ==, !== | 등가 연산자 |
8 | & | 비트 AND 연산자 |
9 | ^ | 비트 XOR 연산자 |
10 | | | 비트 OR 연산자 |
11 | && | 논리 AND 연산자 |
12 | || | 논리 OR 연산자 |
13 | ?: | 조건 연산자(삼항 연산자에서 사용) |
14 | =, +=, -=. *=, /=, %=, <<==, >>== |
대입 연산자 |
15 | , | 나열 연산자(아규먼트를 나눌 때 사용) |
예제 코드
using System;
using static System.Console;//Console단어를 생략(코드길이줄어둠)
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//3 + 4 * 5의 결과값을 출력.
/*가 먼저 계산되므로 23으로 출력됨.
WriteLine(3 + 4 * 5);/
//(3 + 4) * 5의 결과값을 출력.
//괄호 안의 덧셈이 먼저 계산되므로 35가 출력됨.
WriteLine((3 + 4) * 5);
//3 * 4 / 5의 결과값을 출력.
//*와 /는 연산순서가 좌에서 우이므로 * 먼저 계산하고 12/5를 나중에 계산.
//정수/정수는 결과도 정수이므로 소수점이 없어진 2가 출력됨.
WriteLine(3 * 4 / 5);
//3 / 4 * 5의 결과값을 출력.
//연산순서가 좌에서 우이므로 /먼저 계산하고
//0*5를 나중에 계산하여 0이 출력됨.
WriteLine(3 / 4 * 5);
//a + b를 계산하고 결과를 c에 할당합니다.
int a = 10, b = 20, c;
//c의 값은 30이 출력됨.
WriteLine(c = a + b);
}
}
}
결과
23
35
0
30
'C# > 문법 정리' 카테고리의 다른 글
C# - 나눔 예외처리 (DivideByZeroExeption) (0) | 2024.06.24 |
---|---|
C# - 산술 연산자(Arithmetic Operators) (0) | 2024.06.23 |
C# - Convert 클래스 (0) | 2024.06.22 |
C# - 문자열(string)과 숫자의 변환 (0) | 2024.06.22 |
C# - 캐스팅(Casting)과 자료형 변환 (0) | 2024.06.21 |