안녕하세요. Base Of Coding입니다.
이번 시간은, 4장에서 말했듯이 연산자에 대해서 알아보도록 하겠습니다.
전에 배운 강의를 못 보신 분들은 전편들을 보고 오시길 바랍니다.
연산자가 여러개의 연산자가 있는데, 그 중에서 자주 쓰이는 연산자에 대해서만 배워보도록 하겠습니다.
그리고, 아직 배열을 배우진 않았으니, [] 연산자에 대해서는 배열 부분에서 차근차근 알아보도록 하겠습니다.
연산자란 무엇인가요?!
- 간단하게 생각하신다면, + , - , x , ÷ 와 같은 계산을 하기 위해 필요한 기호 같은 것이라고 생각하시면 빠를거란 생각이 듭니다.
피연산자 ( operand ) 는, A + B 라는 계산식이 있다면, 연산자는 + 가 될 것이고, 피연산자는 A와 B가 될 것입니다.
연산자는 영어로 operator입니다.
1 ) 제일 기본적인 + , - , * , / , % 연산자
- +은 덧셈을 뜻하고, -는 빼기, *는 곱하기 , /는 나누기를 뜻합니다. 그리고, %는 나누기를 하고 남은 나머지를 출력하는 데 사용이 됩니다.
[ 1 ) 코드 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Operator : MonoBehaviour { int add = 0; // 덧셈한 값을 저장할 변수 int minus = 0; // 빼기한 값을 저장할 변수 int mul = 0; // 곱하기 한 값을 저장할 변수 int div = 0; // 나누기 한 값을 저장할 변수 int rem = 0; // 나머지 한 값을 저장할 변수 int num, num1; // 피연산자로 지정할 변수들. private void Start() { num = 10; // num에는 10이란 값을 대입 num1 = 4; // num1에는 4라는 값을 대입 add = num + num1; // 덧셈 연산자를 사용해서, add에 대입. minus = num - num1; // 뺄셈 연산자를 사용해서, minus에 대입. mul = num * num1; // 곱하기 연산자를 사용해서, mul에 대입. div = num / num1; // 나누기 연산자를 사용해서, div에 대입. 하지만 몫만 나오게 됩니다. // 그래서 필요한건 나머지 연산자. rem = num % num1; // 나머지 연산자를 사용해서, rem에 대입한다. Debug.LogFormat("덧셈 값은 {0} , 뺄셈 값은 {1} , 곱하기 값은 {2} , 나누기 값은 {3} , 나누기를 하고 남은 나머지의 값은 {4}", add, minus, mul, div, rem); } } |
[ 1 ) 실행 결과 ]

- 덧셈 값은 14, 뺄셈은 6 , 곱하기는 40, 나누기는 2, 나머지의 값은 2가 나왔습니다. 값이 잘 들어갔다가 출력이 되었네요. 이 연산자가 역시나 제일 많이 쓰이면서도 제일 기본적인 연산자입니다.
2) 비교 연산자
- A와 B라는 것이 있습니다. 그럼 이 A와 B라는 값을 비교해보기 위해선 어떻게 사용해야 할까요? 역시 이것도 연산자를 이용해서 비교를 해보아야 합니다.
하지만, 수학적 기호와 컴퓨터에서의 기호는 조금 다릅니다. 수학에서 같다는 = 이거지만, 컴퓨터에서는 == 이렇게 사용이 됩니다.
컴퓨터에선 = 기호는 오른쪽의 값을 왼쪽으로 복사한다( 대입한다 ) 라는 뜻으로 사용되고 있습니다.
한번 코드를 적어보면서 하나하나 익혀보도록 하죠.
[ 2 ) 코드 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Operator : MonoBehaviour { int A, B; // 편의를 위해서 A와 B라는 변수를 선언 bool flag; // 논리 부정을 사용해보기 위한 논리형 변수 선언 private void Start() { // A와 B에 각각 10과 5라는 값으로 초기화. A = 10; B = 5; // 같은가? 같지 않은가?를 비교하는 비교연산자 부분 if(A == B) // A와 B는 같은가? { Debug.Log("A와 B는 같습니다."); } else if(A != B) // A와 B는 같지 않은가? { Debug.Log("A와 B는 같지 않습니다."); } // 큰가? 작은가?를 비교하는 비교연산자 부분 if (A > B) // A가 B보다 큰 가? { Debug.Log("A는 B보다 큰 값을 가지고 있습니다."); } else if(A < B) // A가 B보다 작은가? ( 반댓말로 B가 A보다 큰가? ) { Debug.Log("A는 B보다 작은 값을 가지고 있습니다."); } // 크거나 같고, 작거나 같은 것을 비교하는 부분 if(A >= B) { Debug.Log("A는 B보다 크거나 같습니다."); } else if(A <= B) { Debug.Log("A는 B보다 작거나 같습니다."); } flag = true; // flag라는 변수에 true라는 값을 대입 if(!flag) { Debug.Log("flag라는 변수에 들어가 있는 값은 false입니다."); } else { Debug.Log("flag라는 변수에 들어가 있는 값은 true입니다."); } } } |
[ 2 ) 실행결과 ]

- 비교 연산자를 표로 한번 작성해보았습니다. 잘 이해가 안가신다면 이 표를 한번 봐주세요.
[ 비교 연산자 표 ]
비교 연산자 |
사용 예 ) |
설명 |
결과 ( true / false ) |
== |
A == B |
A 와 B는 같은가? |
같다면 true, 아니면 false |
!= |
A != B |
A와 B는 같지 않은가? |
같지 않으면 true, 같다면 false |
> |
A > B |
A는 B보다 큰 값을 가지고 있는가? |
A가 크다면 true, A가 작다면 false |
< |
A < B |
A는 B보다 작은 값을 가지고 있는가? |
A가 작다면 true, A가 크다면 false |
>= |
A >= B |
A는 B보다 크거나 같은 값을 가지고 있는가? |
A가 B보다 크거나 같다면 true 아니면 false |
<= |
A <= B |
A는 B보다 작거나 같은 값을 가지고 있는가? |
A가 B보다 작거나 같으면 true 아니면 false |
! |
!true |
true의 반대 값인가? ( not true, 즉 false라는 값을 가지고 있는가? ) |
false라는 값을 가지고 있다면 true, 아니면 false |
표를 보시면서 이해하시면 더 빠르게 이해가 가실겁니다. 역시 제일 좋은 방법은 직접 코드를 작성해보고 익히시는 게 좋습니다.
3 ) OR , AND 연산자
- 진실 혹은 거짓이라고 생각하시면 됩니다. 비교 연산자도 true 또는 false로만 구분을 하는데, 이 OR과 AND 연산자 또한 true / false로만 구분을 하고,
OR , AND 연산자는 비교연산자로 비교를 한 것들이 2개 이상일 때 사용이 됩니다. 일단 한번 코드를 작성해보실까요?
[ 3 ) 코드 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Operator : MonoBehaviour { // OR, AND 연산자 int A, B; bool flag; private void Start() { A = 10; B = 20; flag = true; if(A == B || flag == true) // OR 연산자 사용. { Debug.Log("비교한 것들 중 하나가 진실인 것이 있습니다."); } else { Debug.Log("비교한 것들 중 하나도 진실인 것이 없습니다."); } if(A == B && flag == false) { Debug.Log("A와 B는 같고, flag에 들어가 있는 값은 false입니다."); } else { Debug.Log("둘 중 하나가 거짓이거나 전부 다 거짓일 수 있습니다."); } } } |
[ 3 ) 실행 결과 ]
[ OR 연산자란 ? ]
OR는 ~ 이거나 이런 뜻인데 비교한 것들 중에 진실인 것이 하나라도 있으면, if문 안에 있는 코드를 실행시킵니다. 하지만 전부다 거짓이라면 실행시키지 않습니다.
그래서, A와 B는 같진 않지만, flag에 들어가 있는 값은 true이기 때문에, 비교한 것들 중 하나가 진실인 것이 있습니다. 가 출력이 된것입니다.
[ AND 연산자 ]
AND 연산자는 , 뜻 그대로 그리고를 뜻합니다. 비교한 것들이 전부 맞아야 true를 반환, 아니라면 false를 반환하는 연산자입니다.
일부러 전부 틀린 값을 if문에 집어넣긴 했습니다. A와 B는 같지 않기 때문에, if문을 바로 빠져나갑니다. 그렇기 때문에 잘 쓰면 강력한 연산자라고 말씀드리겠습니다.
하나라도 틀리면, 바로 false를 반환하는 연산자라고 생각하시면 됩니다.
4 ) 대입 연산자
- 대입 연산자는, 쓰시는 분들도 있고, 쓰지 않는 분들도 계시는것 같습니다. 하지만 많이 쓰이는 연산자 중 하나입니다. 알아두시면 좋습니다.
= 이 기호는 오른쪽의 값을 왼쪽으로 대입한다라는 뜻으로 사용되고 있다고 말씀을 드렸습니다. 그럼 한번 코드를 볼까요?
[ 4 ) 코드 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Operator : MonoBehaviour { int A = 20, B = 30; private void Start() { // += 대입 연산자 A = A + B; // A+=B와 같은 방식. Debug.Log(A); // 50이란 결과 값이 나온다. A = 20; B = 30; A += B; // A = A+B와 같은 방식 Debug.Log(A); // 50이란 결과값이 나온다. } } |
A = A+B 는 A += B와 같은 방식입니다. 왜 그런가 하면, A라는 값에 A와 B를 더한 값을 넣기 위해서, 대입 연산자를 사용했습니다. 하지만 이런 방법을, A += B라고 하면 컴파일러에서 알아서
아! A랑 B랑 더한값을 A에 넣겠다는 거구나! 라고 인식을 하고, A에 A와 B를 더한 값을 A에 넣어주게 됩니다.
그러면, - , * , /는 어떻게 한다는 거지? 똑같습니다.
[ 4 ) 코드_2 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Operator : MonoBehaviour { int A = 20 , B = 30; int C = 40, D = 10; int E = 100, F = 10; int G = 20, H = 5; private void Start() { // A에 값을 B로 뺀 뒤, A에 넣어줘. A -= B; Debug.Log("A와 B를 빼기한 뒤 A에 들어있는 값은 : " + A); // C의 값을 D와 곱해서, C에 넣어줘. C *= D; Debug.Log("C와 D를 곱해서 C에 들어있는 값은 : " + C); // E의 값을 F로 나눠서, E에 넣어줘. E /= F; Debug.Log("E의 값을 F로 나눠서 나온 몫은 : " + E); // 나머지도 구하고 싶으니깐, G의 값을 H로 나눠서 남은 나머지 값을 G에 넣어줘 G %= H; Debug.Log("G의 값을 H로 나눠서, 남은 나머지 값은 : " + G); } } |
이렇게 왼쪽과 오른쪽의 값 사이에 -= , *= , /= , %= 를 넣어주시게 되면, 왼쪽에 있는 값과 오른쪽에 있는 값을 계산해서, 왼쪽에 있는 값에 넣어줘! 라는 방식입니다.
한번 따라해보시는 것을 추천드립니다. 꼭 똑같은 코드가 아닌, 보시는 분들이 직접 다르게 작성해보면서 익히시는 게 좋습니다.
[ 4 ) 실행 결과 1번 ]

[ 4 ) 실행 결과 2번 ]

자 이렇게 연산자에 대한 기본적인 내용들을 보여드렸습니다.
다른 연산자들도 많이 쓰이는 경우가 있지만, 일단 기본적으로 쓰이는 내용들은 전부 적어드렸습니다. 이 연산자들은 어떻게든 외우시고 익히셔야 되기 때문에
프로그래밍 초급자분들이나 잘 모르시는 분들은 직접 코드를 작성해보면서 익히시는 게 제일 중요합니다.
그리고 MSDN의 연산자 링크입니다.
좀 더 참고해서 보실 분들은 이 부분을 보시면서 공부하시면 될 것 같습니다.
지금까지 Base Of Coding이였습니다. 감사합니다.