ASP.NET 4.0
[ASP.NET] 연산자
메리
2021. 12. 27. 14:10
데이터의 처리는 연산자에 의한 연산으로 이루어진다. 연산자는 식의 값을 계산하거나 논리적인 구문을 정밀하게 제어하는 역할을 한다.
분류 | 언어 |
단항 | + -! ~ ++ -- |
산술 | * / % + - |
비트 | << >> & | ^ |
관계 | < ><= >= is as == != |
논리 | & | && || ! |
대입 | = *=/= +=-= <<= >>=&= ^= |= |
단항 연산자
연산의 대상이 하나인 연산자를 말한다.
부호 연산을 위한 +와 -, 논리형 연산을 표현하는 !, 비트 보수 연산자로 해당 변수 값의 보수를 반환하는 ~ 등이 있다.
// B 부분에 코딩
int myInt = 2;
int result;
result = +myInt; ShowResult(result.ToString());
result = -myInt; ShowResult(result.ToString());
result = ~myInt; ShowResult(result.ToString());
++(증감 연산자), --(감소 연산자)는 전위 또는 후위에 위치시킬 수 있다.
++myInt;
myInt++;
--myInt;
myInt--;
증감 연산과 대입 연산이 함께 있는 식에서 전위 연산자는 증감 연산 후 대입 연산을 한다.
// B 부분에 코딩
// 전위 증감 연산자의 경우 : 증감 연산 후 대입 연산
result = ++myInt; // ① myInt = myInt + 1; ② result = myInt;
ShowResult(result + " vs " + myInt); // result는 3이며 myInt는 3이다.
반면, 후위 연산자는 대입 연산 후 증감 연산을 한다.
// B 부분에 코딩
// 후위 증감 연산자의 경우 : 대입 연산 후 증감 연산
result = myInt++; // ① result = myInt; ② myInt = myInt + 1;
ShowResult(result + " vs " + myInt); // result는 2이며 myInt는 3이다.
result = myInt--; // ① result = myInt; ② myInt = myInt - 1;
ShowResult(result + " vs " + myInt); // result는 3이며 myInt는 2이다.
산술 및 비트 연산자
산술 연산자는 * / % + -가 있다.
// B 부분에 코딩
int myInt = 2;
myInt = myInt << 1;
ShowResult(myInt.ToString());
// 0010 -> 0100
// 2 -> 4
비트 연산자의 & |^는 AND, OR, XOR 연산자이다.
// B 부분에 코딩
int firstOper = 2;
int secondOpr = 3;
int result;
result = firstOper & secondOpr; ShowResult(result.ToString()); // 0010
result = firstOper | secondOpr; ShowResult(result.ToString()); // 0011
result = firstOper ^ secondOpr; ShowResult(result.ToString()); // 0001
관계 및 논리 연산자
관계 연산자와 논리 연산자는 2개의 값을 비교하는 연산자로, 연산 결과를 논리 값(true 또는 false)으로 반환한다.
관계 연산자 | 의미 | 논리 연산자 | 의미 |
< | 보다 작다 | & | AND |
> | 보다 크다 | | | OR |
<= | 작거나 같다 | ^ | XOR |
>= | 크거나 같다 | || | short-circuit OR |
== | 같다 | && | short-circuit AND |
!= | 다르다 | ! | NOT |
// B 부분에 코딩
int myInt = 1;
int yourInt = 2;
bool isBig = (++myInt > ++yourInt) & (++myInt > ++yourInt); // (2 > 3) & (3 > 4) = False
ShowResult("myInt = " + myInt.ToString());
ShowResult("isBig = " + isBig.ToString());
// B 부분에 코딩
int myInt = 1;
int yourInt = 2;
bool isBig = (++myInt > ++yourInt) && (++myInt > ++yourInt); // (2 > 3)False
ShowResult("myInt = " + myInt.ToString());
ShowResult("isBig = " + isBig.ToString());
&연산자는 모든 경우를 확인한 후 결과를 반환하기 때문에 좌항과 우항에서 모두 myInt의 증가 연산이 이루어진다. 따라서 출력 결과는 3이 된다.
반면 && 연산자의 경우 좌항이 거짓이므로, 우항은 연산하지 않기 때문에 출력 결과는 2가 된다.
대입 연산자
기본 대입 연산자는 =이다. C#에서는 산술 연산자나 비교 안산자와 결합된 다양한 대입 연산자를 활용할 수 있다. 이러한 연산자는 편리성은 있지만 가독성은 떨어진다.
대입 연산자 | 의미 | 대입 연산자 | 의미 |
myInt = 2 | 대입 | myInt <<= 2 | myInt = myInt << 2 |
myInt *= 2 | myInt = myInt * 2 | myInt >>= 2 | myInt = myInt >> 2 |
myInt /= 2 | myInt = myInt / 2 | myInt &= 2 | myInt = myInt & 2 |
myInt += 2 | myInt = myInt + 2 | myInt ^= 2 | myInt = myInt ^ 2 |
myInt -= 2 | myInt = myInt - 2 | myInt |= 2 | myInt = myInt | 2 |