산술 연산
- 연산자는 변수나 값에 대해 계산 또는 조작을 수행하는 기호나 키워드를 의미
- 산술연산이라고 하면 어려워 보이지만 그냥 사칙연산이라고 생각하면 된다.
산술 연산 정리표
+ |
더하기 |
- |
빼기 |
* |
곱하기 |
/ |
나누기 |
% |
나머지 |
++ |
증가 |
-- |
감소 |
더하기 연산
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은 / 연산보다 * 연산이 빠르다.
- x = 10 / 2
- x = 10 * 0.5f
- 위 계산의 답은 둘 다 5지만 * 연산이 더 빠르게 처리됨
증감 연산(++, --)
- 증감 연산은 다른 사칙연산과는 다른 특징을 가지고 있다.
int x = 10;
x++;
// x : 11
int y = 10;
y--;
// y : 9
- 1씩 연산
- 더하고 빼는 값을 마음대로 사용 가능한 다른 연산들과는 다르게 증감은 1씩 계산된다.
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 출력
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;
- 또한 x = x + 1; 을 줄여서 표현하는 것도 가능하다.
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;
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로 남아있다.
- 그래서 연산자를 뒤에 붙인다면 해당 라인이 끝나고 값이 증가한다.
- 연산자를 앞에 붙인다면 해당 라인을 실행할 때 증가된 값으로 실행된다.
산술 연산 - 문자열
- 산술 연산은 일반적으로 숫자를 더하고 빼는 등의 계산을 하지만 문자도 연산할 수 있다.
- 모든 연산이 가능하진 않지만 + 연산을 활용할 수 있다.
string hello = "안녕하세요!";
string academy = "스파르타 코딩클럽 입니다!";
string result = hello + academy;
Console.WriteLine(result);
실행 결과
안녕하세요!스파르타 코딩클럽 입니다!
- 문자열에서 +를 하면 두 문자열을 하나로 이어주는 기능을 한다.
string hello = "안녕하세요!";
string result = hello + "스파르타 코딩클럽 입니다!";
Console.WriteLine(result);
실행 결과
안녕하세요!스파르타 코딩클럽 입니다!
int year = 2023;
string result = year + "년 입니다.";
Console.WriteLine(result);
실행 결과
2023년 입니다.
논리 연산 - 같음 연산자
- 논리 연산: 숫자를 더하거나 빼는 것이 아니라 논리적으로 판단하는 연산자
- 두 값이 같은지, 다른지, 큰지, 작은지 체크하는 것
- 같다 부호는 =
- 같지 않다 부호는 ≠
- 그런데 ≠는 입력하기 어렵다. 그리고 =도 변수에 데이터를 저장할 때 활용되는 연산자기에 겹친다.
- 그래서 같다는 ==, 같지 않다는 !=를 사용한다.
int num = 10;
bool isSame = num == 10;
// true
int num = 10;
bool isSame = num != 10;
// false
논리 연산 - 비교 연산자
- 비교 연산자: 어떤 값이 큰지 작은지 비교하는 연산자
- 크다는 <, 작다는 >
- 크거나 같을 때는 <=, 작거나 같을 때는 >=
int age = 23;
bool isAdult = age > 19;
// true
int age = 23;
bool isKid = age < 19;
// false
논리 연산 정리표
> |
a > b |
a 가 b보다 크면 true |
|
>= |
a >= b |
a 가 b보다 크거나 같으면 true |
|
< |
a < b |
b 가 a보다 크면 true |
|
<= |
a <= b |
b 가 a보다 크거나 같으면 true |
|
== |
a == b |
a 와 b 가 같으면 true |
= 이랑 헷갈리지 말자 |
!= |
a != b |
a 와 b 가 다르면 true |
|
&& |
a && b |
두가지 조건이 모두 만족하면 true |
조건부 논리 연산자 |
|| |
a || b |
둘 중 하나만 만족하면 true |
조건부 논리 연산자 |
- 제어문에서 나올 if문이랑 for문 조건식 안에는 무조건 이 논리 연산의 결과가 들어간다고 생각하면 된다.
자료형 - bool
- 자료형에서 살펴봤듯이 bool(boolean)은 단 두 가지의 값을 가지는 자료형
- 보통 논리 연산의 결과로 얻게 된다. (true, false)
- 일반적으로 익숙한 다른 자료형(숫자, 문자)와는 다르게 생소한 형태
- 두 가지만 있다는 건 알겠고 어떻게 사용하는 거? 주로 어떤 계산이 맞았는지 아닌지 확인할 때 사용
bool isLarge = 10 > 5;
- 10 > 5;를 계산했다.
- 계산이 맞으면 isLarge의 값은 true가 되고 틀리면 flase가 된다.
int age = 25;
bool isAdult = age > 19;
결과 : true
int age = 12;
bool isAdult = age > 19;
결과 : false
- 이렇게
- 논리 계산을 통해 true인지 flase인지를 판단하게 되면 제어문에서 핵심적인 기능을 하는 자료형으로써 활용된다.

- 예를 들어 PC방에서 게임을 하다가 밤 10시가 됐을 때를 생각해 보자.
- 성인인지 아닌지에 따라 할 수 있는 선택지가 달라지게 된다.
- 이런식으로 특정한 상황이 되었을 때 어떻게 진행될지 판단근거가 되는 게 bool 자료형.
비트 연산
- 어려운 연산을 최적화할 때 사용한다.
- 지금은 그냥 이런 게 있구나 정도로만 알아두자.
비트 연산 정리표
& |
a & b |
a와 b비트가 일치하는것을 계산 |
And 연산자 |
| |
a | b |
a와 b비트 중 하나만 일치해도 계산 |
Or 연산자 |
^ |
a ^ b |
a와 b비트가 다른것만 계산 |
Xor 연산자 |
<< |
a<<b |
a의 비트를 왼쪽으로 b만큼 이동 |
시프트 연산자 |
>> |
a>>b |
a의 비트를 오른쪽으로 b만큼 이동 |
시프트 연산자 |