이제 연산자에 대해 알아보도록 하겠습니다.
연산자라고 하면 가장 먼저 떠오르는 더하기, 빼기 등의 산술적인 연산을 하기 위한 연산자부터
and, or와 같은 논리 연산자까지 여러 연산자가 존재하고 그 사용법 또한 다양합니다.
이번 글에서는 연산자 중 수식 및 증감, 할당 연산자에 대해 적어보도록 하겠습니다.
수식 연산자
먼저 알아볼 연산자는 가장 기본적인 수식 연산자입니다.
수식 연산자는 더하기, 빼기, 곱하기, 나누기 그리고 나머지 이렇게 5가지가 있으며
일반적으로 가장 많이 사용하는 연산자가 아닐까 싶습니다.
수식 연산자의 종류는 아래와 같습니다.
여기서 피연산자는 연산자의 대상이 되는 변수 혹은 상수를 말합니다.
수식 연산자는 당연히 정수와 실수 연산에 사용하며, 경우에 따라 문자와 문자열에도 사용이 가능합니다.
그럼 차례대로 예제를 보며 확인해보겠습니다.
먼저 정수 및 실수 연산은 다음과 같습니다.
결과값을 보면 '+', '-', '*', '%' 까지 정상적으로 출력되었지만 '/' 연산의 경우
소수점 이하의 값 없이 '3'만 출력된 것이 보입니다.
이는 int형 자료형은 정수형이니 때문에 실수형 데이터는 소실되기 때문입니다.
이러한 경우 실수 자료형(float, double, decimal 등)을 사용해야 하지만
아래와 같이 실수형으로 형변환을 통해서도 해결이 가능합니다.
문자와 문자열에 대한 연산은 다음과 같습니다.
먼저 아래의 char형을 사용한 문자 연산의 경우 해당 문자의 ASCII코드 값으로 연산을 합니다.
아래의 예제의 '8'과 '3'은 ASCII코드값으로 각각 '56'과 '51'로써 이 두 숫자에 대한 결과입니다.
이번에는 문자열의 연산입니다.
당연하겠지만 문자열의 경우 '+' 연산만 가능합니다.
사용 방법 및 결과 값은 아래와 같습니다.
할당 연산자
또한 이런 수식 연산자를 아래와 같은 방법으로 줄여서 사용할 수 있습니다.
용어를 정확히 몰라서 찾아보니 할당 또는 복합 할당 연산자라고 부르는 것 같습니다.
기본적으로 왼쪽 피연산자와 오른쪽 피연산자를 연산한 결과값을 다시 왼쪽 피연산자에 지정해주는 연산자입니다.
(msdn을 보니 기본적인 수식 연산 외의 비트 연산도 가능하다고 합니다.)
사용방법은 아래 예제와 같으며 다른 할당 연산의 경우도 동일합니다.
증감 연산자
증감 연산자는 반복문이나 flag 혹은 seq 값을 사용하는 경우에 주로 사용 방법입니다.
아래 표와 같이 기본적으로 '++'와 '–-'두 가지가 있으며 연산자의 위치에 따라 총 4가지 방법으로 사용합니다.
(설명의 '처리'라는 의미는 아래의 예제와 같이 설명하도록 하겠습니다.)
우선 피연산자의 앞에 붙이면 전위, 뒤에 붙이면 후위 증감 연산자라 하며
전위냐 후위냐에 따라 연산 프로세스가 약간 다릅니다.
아래 예제는 '++a'인 전위 연산과 'a++'인 후위 연산으로 확인해보겠습니다.
우선 좌측 후위 연산의 경우 결과값을 보면 '10'과 '11'이 출력된 것을 확인할 수 있습니다.
후위 연산자는 해당 연산자가 있는 라인의 할 일(출력 및 기타 프로세스)을 마치고
다음 라인으로 넘어가기 직전에 연산을 하는 연산자입니다.
그래서 12번 라인의 할 일인 출력을 실행하고 13번 라인으로 넘어가기 전에 후위 연산을 실행하기 때문에
12번 라인은 '10'이 출력되고, 그 다음 13번 라인에서는 '11'이 출력되는 것입니다.
이제 우측 전위 연산의 결과값으로 왜 '11', '11'이 출력되었는지 아실 수도 있을 듯합니다.
12번 라인의 할 일인 출력을 실행하기 전에 전위 연산을 먼저 실행하고 다음 프로세스를 진행하기 때문에
12번과 13번 라인 모두 '11'이 출력되는 것입니다.
계획대로라면 연산자는 한 번에 다 설명하려 했는데... 생각보다 글이 길어졌습니다.
우선 첫 번째로 수식, 할당, 증감 연산자에 대하여 설명해봤습니다.
다음 글에서 오늘 못 다룬 관계, 비트, 논리, 시프트 연산자에 대하여 다루도록 하겠습니다.
감사합니다.
'Programming > .NET' 카테고리의 다른 글
[C#] 삼항 연산자 (0) | 2020.05.04 |
---|---|
[C#] 06. 연산자(관계, 논리, 비트) (0) | 2020.04.24 |
[C#] 05. var와 object (0) | 2020.03.29 |
[C#] 04. 자료형 (0) | 2020.03.21 |
[C#] 03. 변수와 상수 (0) | 2020.03.13 |