10. 할당 연산자와 증감 연산자 사용하기
이번 강의는 변수에 값을 대입하는 할당 연산자와 변수의 값을 증가 또는 감소시키는 증감 연산자에 대해서 정리합니다.
> // 할당 연산자와 증감 연산자: =, +=, -=, *=, /=, %=, ++, --
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) i
와 j
에 각각 100과 200을 넣고 출력해 봅니다.
> var i = 100;
> var j = 200;
> $"처음: {i}, {j}"
"처음: 100, 200"
(2) i
와 j
의 값을 변경하려면 임시 변수인 temp
를 두고 i
의 값을 저장합니다. 그런 다음 i
에 j
를 대입 후 마지막으로 j
에 temp
를 대입합니다. 이런 과정을 거치면 두 변수의 데이터가 변경됩니다.
> 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. 장 요약
이번 강의는 할당 연산자인 =
, +=
, -=
, *=
, /=
, %=
과 증가 또는 감소 연산자인 ++
와 --
를 다루어 보았습니다. 계속해서 비교 연산자와 논리 연산자를 알아보겠습니다.