C# 연산자 복합할당, 조건부 논리 연산자 차이

RushBsite·2022년 8월 17일
0

TIL

목록 보기
17/18
post-thumbnail

복합할당

이진 연산자(op)의 경우 양식의 복합 할당식
x op=y 의 식은 아래의 식과 동일
x = x op y

예시

bool test = true;
test &= false; //output : False (test = test & false;

test |= true; // output : True ( test = test | false;

test ^= fasle; // ^ = XOR, output : True ( test = test ^ false; 

XOR 연산자 ^

x^y 의 경우에 서로 다른 진리값을 가질 경우 (ex) x = true , y = false || x = false, y = true ) True를 반환한다.
-> 즉 피연산자 bool의 같지 않음 bool != 자와 동일 결과

조건부 논리 연산 vs 논리 연산자

&&& 의 차이 , ||| 의 차이는
lhs 즉 왼쪽 피연산자의 값이 이후 연산 수행에 영향을 미치는 가의 차이이다.

&& vs &

  • &&
    -> xy가 모두 true로 평가되면 x && y의 결과는 true입니다. 그렇지 않으면 결과는 false입니다. x가 false이면 y는 계산되지 않습니다.

  • &
    -> xy가 모두 true로 평가되면 x && y의 결과는 true입니다. 그렇지 않으면 결과는 false입니다. 왼쪽 피연산자가 false로 평가되더라도 & 연산자는 두 피연산자를 평가하여 오른쪽 피연산자의 값에 관계없이 false이어야 합니다.

ex)

아래 예시를 보면 lhs 값에 관계없이 SecondOperand()가 수행되는 것을 확인 할 수 있다.

bool SecondOperand()
{
    Console.WriteLine("Second operand is evaluated.");
    return true;
}

bool a = false & SecondOperand();
Console.WriteLine(a);
// Output:
// Second operand is evaluated.
// False

bool b = true & SecondOperand();
Console.WriteLine(b);
// Output:
// Second operand is evaluated.
// True

|| vs |

  • ||
    ->x 또는 ytrue로 평가되면 x || y의 결과는 true입니다. 그렇지 않으면 결과는 false입니다. x가 true이면 y는 계산되지 않습니다.

  • |
    -> x 또는 ytrue로 평가되면 x | y의 결과는 true입니다. 그렇지 않으면 결과는 false입니다.

왼쪽 피연산자가 true로 평가되더라도 | 연산자는 두 피연산자를 평가하여 오른쪽 피연산자의 값에 관계없이 true이어야 합니다.

예시는 위의 & 경우와 동일하여 생략

profile
게임 기획/개발 지망생

0개의 댓글