C# 및 다른 프로그래밍 언어에서는 다양한 종류의 연산자를 사용할 수 있습니다. 연산자는 피연산자의 개수에 따라 단항 연산자, 이항 연산자, 삼항 연산자로 구분됩니다.
단항 연산자
단항 연산자는 하나의 피연산자를 가지는 연산자입니다. C#에서 사용하는 대표적인 단항 연산자로는 다음과 같습니다.
- + : 양수 부호를 지정합니다.
- - : 음수 부호를 지정합니다.
- ++ : 피연산자에 1을 더합니다.
- -- : 피연산자에서 1을 뺍니다.
- ! : 논리 부정 연산자입니다. true를 false로, false를 true로 바꿉니다.
단항 연산자는 이항 연산자보다 연산 속도가 빠릅니다.
이항 연산자
이항 연산자는 두 개의 피연산자를 가지는 연산자입니다. C#에서 사용하는 대표적인 이항 연산자로는 다음과 같습니다.
- + : 더하기 연산을 수행합니다.
- - : 빼기 연산을 수행합니다.
- * : 곱하기 연산을 수행합니다.
- / : 나누기 연산을 수행합니다.
- % : 나머지 연산을 수행합니다.
- == : 두 값이 같은 경우 참(true)을 반환합니다.
- != : 두 값이 다른 경우 참(true)을 반환합니다.
- < : 왼쪽 값이 오른쪽 값보다 작은 경우 참(true)을 반환합니다.
- > : 왼쪽 값이 오른쪽 값보다 큰 경우 참(true)을 반환합니다.
- <= : 왼쪽 값이 오른쪽 값보다 작거나 같은 경우 참(true)을 반환합니다.
- >= : 왼쪽 값이 오른쪽 값보다 크거나 같은 경우 참(true)을 반환합니다.
이항 연산자는 단항 연산자보다 연산 속도가 느립니다.
논리 연산자
논리 연산자에는 AND(&&), OR(||), NOT(!) 연산자가 있으며, 단항 연산자와 이항 연산자에서 모두 사용됩니다.
단항 연산자
논리 연산자 중 NOT(!) 연산자는 단항 연산자입니다. 이 연산자는 피연산자가 참(True)이면 거짓(False)을, 거짓(False)이면 참(True)을 반환합니다. 예를 들어, 다음은 NOT(!) 연산자를 사용한 코드입니다.
bool isTrue = true;
bool isFalse = !isTrue;
위 코드에서는 isTrue 변수에 true 값을 할당하고, isFalse 변수에는 NOT(!) 연산자를 사용하여 isTrue 변수의 반대 값을 할당하였습니다.
이항 연산자
AND(&&) 연산자와 OR(||) 연산자는 이항 연산자입니다. AND 연산자는 두 개의 피연산자가 모두 참(True)일 때 참(True)을 반환하며, OR 연산자는 두 개의 피연산자 중 하나라도 참(True)이면 참(True)을 반환합니다. 예를 들어, 다음은 AND(&&) 연산자와 OR(||) 연산자를 사용한 코드입니다.
bool isTrue = true;
bool isFalse = false;
bool result1 = isTrue && isFalse;
bool result2 = isTrue || isFalse;
위 코드에서는 isTrue 변수에 true 값을 할당하고, isFalse 변수에는 false 값을 할당하였습니다.
result1 변수에는 AND(&&) 연산자를 사용하여 isTrue와 isFalse 변수의 논리곱을 할당하였으므로, result1 변수에는 false 값이 할당됩니다.
result2 변수에는 OR(||) 연산자를 사용하여 isTrue와 isFalse 변수의 논리합을 할당하였으므로, result2 변수에는 true 값이 할당됩니다.
따라서, 논리 연산자를 사용하여 조건문의 결과를 판별하거나, 반복문의 종료 조건을 판별하는 등 다양한 상황에서 활용할 수 있습니다.
이외에도, 논리 연산자를 활용하여 비트 연산자와 같이 사용할 수도 있습니다. 예를 들어, 다음과 같이 논리 연산자와 비트 연산자를 함께 사용하여 값을 바꿀 수 있습니다.
int value = 0b10101010;
value |= 0b00010000;
value &= ~0b00000001;
위 코드에서는 value 변수에 0b10101010(10진수로 170) 값을 할당하고, value 변수에 0b00010000 값을 OR(|=) 연산자를 사용하여 할당하였습니다. 이는 value 변수의 5번째 비트를 1로 바꾼 것입니다.
또한, value 변수에 0b00000001 값을 NOT(~) 연산자를 사용하여 할당하고, 이 결과값과 value 변수에 AND(&) 연산자를 사용하여 할당하였습니다. 이는 value 변수의 0번째 비트를 0으로 바꾼 것입니다.
&연산자와 &&연산자의 차이점 ( | 과 ||도 동일)
& 연산자와 && 연산자는 비교 연산자와 같이 사용될 때, 조건문의 실행 결과가 달라질 수 있습니다. & 연산자는 두 개의 피연산자를 모두 비교하기 때문에, 첫 번째 피연산자가 거짓(false)일 때에도 두 번째 피연산자를 비교합니다. 하지만 && 연산자는 첫 번째 피연산자가 거짓(false)일 때, 두 번째 피연산자를 비교하지 않고 조건문의 실행을 멈춥니다. 이러한 차이점 때문에, && 연산자를 사용하면 코드 실행 속도를 높일 수 있습니다.
삼항 연산자
삼항 연산자는 세 개의 피연산자를 가지는 연산자입니다. 조건식 ? 값1 : 값2의 형태를 가집니다. 조건식이 참(true)이면 값1을, 거짓(false)이면 값2를 반환합니다.
int x = 5; string result = x > 0 ? "양수" : "음수";
x가 0보다 크므로 result에 양수가 선언됩니다.
삼항 연산자를 중첩 시킬수도 있습니다
int x = 5; string result = x > 0 ? "양수" : (x < 0 ? "음수" : "0");
삼항 연산자는 코드를 더 짧고 간결하게 만들 수 있지만 특히 중첩된 경우 코드를 읽고 이해하기 어렵게 만들 수도 있다는 점에 유의하는 것이 중요합니다. 따라서 일반적으로 간단한 if-else 문에만 삼항 연산자를 사용하고 보다 복잡한 논리에는 일반 if-else 문을 사용하는 것이 가장 좋습니다.
'Unity' 카테고리의 다른 글
Unity에서 게임 오브젝트 회전하는 방법 (0) | 2023.03.19 |
---|---|
Unity에서 게임 오브젝트 위치 이동 시키기 (0) | 2023.03.18 |
Unity 코루틴 - Coroutine (0) | 2023.03.10 |
Unity 스크립트 실행 순서 설정 (0) | 2023.03.09 |
Unity 이벤트 함수 (0) | 2023.03.08 |