10. 할당 연산자와 증감 연산자 사용하기

  • 11 minutes to read

이번 강의는 변수에 값을 대입하는 할당 연산자와 변수의 값을 증가 또는 감소시키는 증감 연산자에 대해서 정리합니다.

> // 할당 연산자와 증감 연산자: =, +=, -=, *=, /=, %=, ++, --

10.1. 할당 연산자(Assignment Operator)

할당 연산자는 변수에 값을 대입하기 위해 사용되며, 대입 연산자로도 불립니다. 수학에서 =는 같다는 의미로 사용되지만, C#에서는 이 기호가 같다는 의미가 아닌 오른쪽의 값 또는 식의 결과를 왼쪽 변수에 대입하라는 명령을 나타냅니다.

대입 연산자의 종류는 다음과 같습니다.

=, +=, -=, *=, /=, %=

다음은 대입 연산자의 사용 예입니다.

연산자 예시 설명
A = B 변수 A에 변수 B의 값을 대입합니다.
A = A + B A에 B를 더한 후, 그 값을 다시 A에 대입합니다.
A += B A에 B를 더한 후, 그 값을 다시 A에 대입합니다.
A = A - B A에서 B를 뺀 후, 그 값을 다시 A에 대입합니다.
A -= B A에서 B를 뺀 후, 그 값을 다시 A에 대입합니다.

할당 연산자 사용하기

지금까지 우리가 사용해 온 변수 선언 후 초기화할 때 사용한 = 연산자가 바로 데이터를 할당하는 할당 연산자입니다.

코드: AssignmentOperator.cs

> //[?] 할당(대입) 연산자: 변수에 특정 값으로 초기화하면 자동 유추에 의해서 형식이 결정됨
> var name = "C#"; // name 변수에 문자열을 대입합니다. 
> var version = 12.0; // version 변수에 숫자를 대입합니다. 
> $"{name} {version}"
"C# 12"

대입되는 값에 따라서 자동으로 유추되어 name 변수는 string 형식으로, version 변수는 double 형식으로 변수가 선언됩니다.

변숫값 서로 바꾸기

프로그래밍을 하다보면 변수의 값을 서로 변경할 필요가 있을 수 있습니다. 이러한 경우에는 일반적으로 임시 변수를 하나 더 두고 이곳에 먼저 나온 데이터를 임시 보관하는 식으로 데이터를 바꿀 수 있습니다. 다음 코드를 살펴보세요. 소스는 SwapDemo.cs 파일에서 볼 수 있습니다.

(1) ij에 각각 100과 200을 넣고 출력해 봅니다.

> var i = 100;
> var j = 200;
> $"처음: {i}, {j}"
"처음: 100, 200"

(2) ij의 값을 변경하려면 임시 변수인 temp를 두고 i의 값을 저장합니다. 그런 다음 ij를 대입 후 마지막으로 jtemp를 대입합니다. 이런 과정을 거치면 두 변수의 데이터가 변경됩니다.

> var temp = i; //[A] 임시 변수에 i 값 담기
> i = j; //[B] i 값에 j 값으로 덮어쓰기
> j = temp; //[C] j에 i 값이 담겨 있던 temp값으로 덮어쓰기
> $"변경: {i}, {j}"
"변경: 200, 100"

변수의 값을 1 증가시키기

이번에는 변수의 값을 1 증가시키는 코드를 만들어보겠습니다.

코드: IncrementNumber.cs

> //[?] 정수형 변수의 값을 1씩 증가
> int num = 10;
> num = num + 1; // 1 증가
> num
11

변수의 값을 1 감소시키기

이번에는 변수의 값 감소 기능을 사용해보겠습니다.

코드: DecrementNumber.cs

> //[?] 정수형 변수의 값을 1씩 감소
> int num = 10;
> num = num - 1; // 1 감소
> num
9

대입 연산자 축약형 사용하기

대입 연산자는 += 형태로 축약형으로 사용할 수 있습니다. 이와 같은 축약 표현을 복합 할당 연산자라고 합니다.

이번에는 x = x + 2; 형태를 x += 2; 형태로 축약해서 사용할 수 있는 숏컷 연산자인 += 연산자를 사용해보겠습니다.

코드: ShortcutOperator.cs

> int x = 3;
> int y = 3;
> 
> x = x + 2; // 기본형
> y += 2; // 축약형
> 
> $"x: {x}, y: {y}"
"x: 5, y: 5"

기본형과 축약형은 모두 동일하게 x 변수와 y 변수에 2를 더해서 저장하는 기능을 합니다.

+=-= 연산자 사용하기

A += B와 같은 연산은 단지 A = A + B와 같은 구문을 줄여서 사용하는 목적이 큽니다. 이처럼 C#에서는 개발자가 최소한의 입력으로 동일한 효과를 보여줄 수 있는 풍부한 연산자를 제공합니다.

이번에는 += 연산자와 -= 연산자를 사용해보겠습니다.

코드: ShortcutOperatorDemo.cs

> int a = 3;
> int b = 5;
> 
> b += a; // 누적: b변수에 a변수의 값을 누적
> b
8
> 
> b -= a; // 가감: b에서 a를 뺀 후 다시 b에 할당
> b
5

할당 연산자 중에는 += 연산자 말고도 -=, *=, /=, %= 등을 제공합니다.

10.2. 증가, 감소 연산자 사용하기

변수의 값을 1 증가시키거나 1 감소시키는 연산자가 있습니다. 증가 또는 감소 연산자라고 하여 줄여서 증감 연산자(Increment/Decrement Operator)라고도 합니다. ++ 연산자는 증가 연산자이고 -- 연산자는 감소 연산자입니다. 증감 연산자는 정수형 변수의 값을 1 증가 또는 1감 소하는 기능을 하는 단항(Unary) 연산자이며, 증감 연산자가 변수 앞에 위치하느냐 뒤에 위치하느냐에 따라 연산 처리 우선순위가 결정됩니다.

증감 연산자의 종류는 다음과 같습니다.

연산자 설명
++(증가 연산자) 변숫값에서 1을 더합니다.
--(감소 연산자) 변숫값에서 1을 뺍니다.

증감 연산자 중 증가 연산자 사용하기

증가 연산자는 하나의 변수의 값을 1씩 증가시키는 연산자로 알려져 있으며, 반대로 변수의 값을 1씩 감소시키는 연산자를 감소 연산자라고 합니다. 이 두 연산자를 합쳐 일반적으로 증감 연산자라고 부릅니다.

이번 섹션에서는 증가 연산자의 사용 방법에 대해 알아보겠습니다.

코드: IncrementOperator.cs

> //[?] 증가 연산자: 정수 자료형 변수의 값을 1 증가
> int num = 100;
> ++num; // 1 증가
> num
101

증감 연산자 중 감소 연산자 사용하기

이번에는 감소 연산자를 사용해보겠습니다.

코드: DecrementOperator.cs

> //[?] 감소 연산자: 정수 자료형 변수의 값을 1 감소
> int num = -100;
> --num; // 1 감소
> num
-101

10.3. 전위 증감 연산자와 후위 증감 연산자

증감 연산자의 위치에 따라 연산 처리 우선순위가 달라집니다. 변수 앞에 있을 경우, 먼저 변수 값을 증가시킨 후 해당 값을 사용합니다. 반면 변수 뒤에 있을 경우, 먼저 해당 값을 사용하고 나서 변수 값을 증가시킵니다.

표: 전위 증감 연산자와 후위 증감 연산자

구 분 설 명 사용 예
전위(Prefix) 증감 연산자 정수형 변수의 앞에 연산자가 위치하여 변수 값을 미리 증감 후 다른 연산을 수행합니다. ++a;
--b;
후위(Postfix) 증감 연산자 정수형 변수의 뒤에 연산자가 위치하여 연산식(대입)을 먼저 실행 후 나중에 변수의 값을 증감합니다. a++;
b--;

전위 증감 연산자 사용하기

전위 증감 연산자를 사용해 보겠습니다. 앞에 붙는 증감 연산자는 해당 라인에서 실행 우선순위가 가장 높습니다.

코드: PrefixOperator.cs

> // 전위(Prefix) 증감 연산자: 우선순위가 높음
> int i = 3;
> int j = ++i;
> j
4

++i 형태로 앞에 붙는 경우에는 i의 값을 우선적으로 1증가 시켜줍니다. 위 예제에서는 i의 값이 3에서 4로 증가된 후 이 값이 j에 할당되어 j의 값이 4가 됩니다.

후위 증감 연산자 사용하기

후위 증감 연산자는 해당 라인에서 대입 연산자보다 우선순위가 낮습니다.

코드: PostfixOperator.cs

> // 후위(Postfix) 증감 연산자: 우선순위가 낮음
> int x = 3;
> int y = x++;
> y
3
> x
4

x++ 형태로 뒤에 증가 연산자가 붙어서 x의 값이 3이 먼저 y에 할당된 후 증가가 되기에 y 변수에는 3이 대입된 상태가 됩니다.

즉, 다음 3개의 구문은 모두 동일한 기능을 합니다.

a = a + 1; a += 1; ++a;

10.4. 장 요약

이번 강의는 할당 연산자인 =, +=, -=, *=, /=, %=과 증가 또는 감소 연산자인 ++--를 다루어 보았습니다. 계속해서 비교 연산자와 논리 연산자를 알아보겠습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com