유니티로 배우는 C# - 5. 연산자
난이도 0.7~1.0 / 5.0
안녕하세요. Base Of Coding입니다.
이번 시간은, 4장에서 말했듯이 연산자에 대해서 알아보도록 하겠습니다.
전에 배운 강의를 못 보신 분들은 전편들을 보고 오시길 바랍니다.
2018/08/16 - [Programming/C#] - [ 유니티로 배우는 C# ] 1. Debug.Log(출력)
2018/08/19 - [Programming/C#] - [ 유니티로 배우는 C# ] 2. 변수란 무엇인가?
2018/08/19 - [Programming/C#] - [ 유니티로 배우는 C# ] 3. 조건문(1) if문
2018/08/29 - [Programming/C#] - [ 유니티로 배우는 C# ] 4. 조건문(2) switch문
연산자가 여러개의 연산자가 있는데, 그 중에서 자주 쓰이는 연산자에 대해서만 배워보도록 하겠습니다.
그리고, 아직 배열을 배우진 않았으니, [] 연산자에 대해서는 배열 부분에서 차근차근 알아보도록 하겠습니다.
< 1. 연산자란? >
연산자란 무엇인가요?!
- 간단하게 생각하신다면, + , - , x , ÷ 와 같은 계산을 하기 위해 필요한 기호 같은 것이라고 생각하시면 빠를거란 생각이 듭니다.
피연산자 ( operand ) 는, A + B 라는 계산식이 있다면, 연산자는 + 가 될 것이고, 피연산자는 A와 B가 될 것입니다.
연산자는 영어로 operator입니다.
< 2. 연산자를 코드를 작성하면서 알아봅시다. >
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); } } |
- 덧셈 값은 14, 뺄셈은 6 , 곱하기는 40, 나누기는 2, 나머지의 값은 2가 나왔습니다. 값이 잘 들어갔다가 출력이 되었네요. 이 연산자가 역시나 제일 많이 쓰이면서도 제일 기본적인 연산자입니다.
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 연산자
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("둘 중 하나가 거짓이거나 전부 다 거짓일 수 있습니다."); } } } |
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이란 결과값이 나온다. } } |
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 ) 실행 결과 2번 ]
자 이렇게 연산자에 대한 기본적인 내용들을 보여드렸습니다.
다른 연산자들도 많이 쓰이는 경우가 있지만, 일단 기본적으로 쓰이는 내용들은 전부 적어드렸습니다. 이 연산자들은 어떻게든 외우시고 익히셔야 되기 때문에
프로그래밍 초급자분들이나 잘 모르시는 분들은 직접 코드를 작성해보면서 익히시는 게 제일 중요합니다.
그리고 MSDN의 연산자 링크입니다.
좀 더 참고해서 보실 분들은 이 부분을 보시면서 공부하시면 될 것 같습니다.
지금까지 Base Of Coding이였습니다. 감사합니다.