산술연산 이라 해서 말이 어려워 보이지만 그냥 사칙연산이라고 생각하시면 됩니다.
요약
+
|
더하기
|
-
|
빼기
|
*
|
곱하기
|
/
|
나누기
|
%
|
나머지
|
++
|
증가
|
--
|
감소
|
더하기 연산 (+)
int x = 10;
int result;
result = x + 3; // result : 13
빼기 연산 (-)
int x = 10;
int result;
result = x - 5; // result : 5
곱하기 연산 (*)
int x = 10;
int result;
result = x * 2; // result : 20
나누기 , 나머지 연산 ( /, % )
몫을 구하는 계산 : /
나미지를 구하는 계산 : %
int x = 17;
int result_1;
int result_2;
result_1 = x / 5; // result_1 : 3
result_2 = x % 5; // result_2 : 2
Tip
/ 연산을 하는 것 보다 * 연산을 하는게 빠릅니다.
가능하면 *를 이용해 주세요.
예를 들면 아래 계산의 답은 둘 다 5지만 아래있는 계산이 더 빠르게 처리됩니다.
x = 10 / 2
x = 10 * 0.5f
증감 연산 (++ , --)
증감연산은 다른 사칙연산과는 다른 특징들을 가지고 있습니다.
1씩 연산
더하고 빼는 값을 마음대로 사용 가능한 다른 연산과는 다르게 증감은 1씩 계산됩니다.
int x = 10;
x++;
// x : 11
int y = 10;
y--;
// y : 9
변수에 바로 계산
일반적으로 변수는 연산을 한 값을 다시 할당하지 않으면 저장되지 않습니다.
int x = 10;
Console.WriteLine(x + 10); // 20 출력
Console.WriteLine(x); // 10 출력
위 예제에서는 x 에 10을 더했지만 다시 할당하지 않았으므로 x 는 그대로 10 인 것을 볼 수 있습니다.
이 값을 저장하려면 변수에 다시 할당을 해야합니다.
int x = 10;
x = x + 10;
// x 는 처음에 10 이었지만
// = 를 이용해 x 에 다시 값을 다시 할당했습니다.
// 그리고 할당한 값은 x + 10
// 여기서 x 는 10 이었으므로 10 + 10 이 됩니다.
Console.WriteLine(x); // 20 출력
x = x + 1; 을 줄여서 표현하는게 가능합니다.
int x = 10;
x = x + 10;
Debug.Log(x) // 20
int y = 10;
y += 10;
Debug.Log(y) // 20
// + - * / % 다 가능합니다.
// a += 10;
// a -= 4;
// a *= 2;
// a /= 2;
// a %= 3;
이처럼 일반 연산 (+, -, *, /, %)들은 다시 할당을 해야 값이 저장이 됩니다.
하지만 증감 연산자는 사용하고 다시 할당하지 않더라도 값이 저장됩니다.
int x = 10;
x++; // x++ 를 하고 다시 x 에 할당하지 않았습니다.
Console.WriteLine(x); // 11 출력
int y = 10;
y--; // y++ 를 하고 다시 y 에 할당하지 않았습니다.
Console.WriteLine(y); // 9 출력
전위 연산 / 후위 연산
증감 연산은 해당 연산을 변수의 앞 혹은 뒤에 붙일 수 있습니다.
int x = 10;
x++;
++x;
작업을 할때 각 줄의 끝에 세미콜론( ; ) 을 붙인 것을 기억하실 겁니다.
이 세미콜론을 기준으로 띄어쓰기를 하고 이를 각 라인 이라고 합니다.
C# 에서는 라인을 기준으로 한 라인, 한 라인 작업을 수행합니다.
여기서 연산자를 뒤에 붙인다면 해당 라인이 끝나고 값이 증가합니다.
연산자를 앞에 붙인자면 해당 라인을 실행할때 증가된 값으로 실행합니다.
int x = 10;
Console.WriteLine(x++); // 10 출력 - ++ 를 x 뒤에 붙였기 때문에 여기까지는 아직 10입니다.
Console.WriteLine(x); // 11 출력 - 이후에는 11로 저장된 것을 볼 수 있습니다.
int y = 10;
Console.WriteLine(++y); // 11 출력 - ++ 를 x 앞에 붙였기 때문에 여기서 부터 11 로 인식합니다.
Console.WriteLine(y); // 11 출력 - 물론 이후에도 저장된 11로 남아있습니다.
Think
사칙연산간 우선순위가 어떻게 될까?
항목
|
연산자
|
우선순위
|
괄호 연산자
|
()
|
높음
|
증감 연산자
|
++, --
|
↕
|
산술 연산자
|
-(음수)
|
|
*, /
|
||
%
|
||
+, -
|
||
연결 연산자
|
+
|
|
관계 연산자
|
==, !=, <, >, <=, >=
|
|
논리 연산자
|
!(Not)
|
|
&&(And)
|
||
||(Or)
|
낮음
|
'C# > 연산자' 카테고리의 다른 글
[C#] 자료형 - bool (0) | 2024.03.25 |
---|---|
[C#] 논리 연산 - 정리표 (0) | 2024.03.25 |
[C#] 논리 연산 - 비교 연산자 (0) | 2024.03.25 |
[C#] 논리 연산 - 같음 연산자 (0) | 2024.03.25 |
[C#] 산술 연산 - 문자열 (0) | 2024.03.25 |
댓글