유니티 C# - 연산자

황정욱·2022년 10월 27일
0
post-thumbnail

Operator라는 스크립트를 만들고 게임 오브젝트에 넣어주고 다른 스크립트는 제거한다.

public class Operator : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 수식연산자
        int num1 = 10;
        int num2 = 2;
        int num3 = 0;

        num3 = num1 + num2;
        num3 = num1 - num2;
        num3 = num1 * num2;
        num3 = num1 / num2;
        num3 = num1 % num2;
        Debug.Log(num3);
        
        // 증감연산자
        num3++;
        Debug.Log(num3);
        num3--;
        Debug.Log(num3);
        
        // 할당연산자
        num3 = 100;
        num3 += 20;
        num3 -= 20;
        num3 *= 20;
        num3 /= 20;
        num3 %= 100;
        Debug.Log(num3);
        
        // 관계연산자
        int a = 10;
        int b = 20;
        bool isTrue = false;
        isTrue = (a < b);
        isTrue = (a <= 10);
        isTrue = (a > b);
        isTrue = (a >= b);
        isTrue = (a == b);
        isTrue = (a != b);
        Debug.Log(isTrue);
        
        // 논리연산자
        isTrue = (a > 5) && (b > 10);
        isTrue = (a > 10) && (b > 10);
        isTrue = (a > 10) || (b > 10);
        isTrue = (a > 10) || (b > 20);
        isTrue = !(a > 10) || (b > 20);
        isTrue = !isTrue;
        Debug.Log(isTrue);
        
         //비트연산자
        int number1 = 5;
        int number2 = 10;
        int result = number1 & number2;
        Debug.Log(result);

        result = number1 | number2;
        Debug.Log(result);

        result = number1 ^ number2;
        Debug.Log(result);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

// 수식연산자 (+, -, *, /, %)
수식연산자는 수학시간에 배운거랑 똑같다.
"="를 기준으로 우항을 계산하고 그 값을 좌항에 있는 변수에 대입한다.
%는 나머지를 의미한다.
num3 = num1 % num2 는 num1을 num2로 나누었을때 나머지를 num3에 대입하겠다는 뜻이다.
num3의 값은 다음과 같이 바뀐다.
12, 8, 20, 5, 0
그래서 현재의 num3값을 출력하면 0이 나온다.

//증감연산자 (++, --)
++나 --기호를 숫자형 변수에 붙여주면 그 변수의 값은 정확히 1증가 혹은 감소한다.
증감연산자는 변수앞이나 뒤에 붙여도 된다.

//할당연산자 (=, +=, -=, *=, /=, %=)
num3 = 100;은 num3 에 100이라는 값을 할당.
num3 += 20;num = num3 + 20; 와 같은 말이다. 즉 num += 20은 num3에 20을 더하고 그 더한 값을 num3에 할당하겠다는 의미다.
다른 할당연산자도 같은 뜻이다.

//관계연산자 (<, >, <=, >=, ==, !=)
말 그대로 관계연산을 한다. <, >, <=, >= 은 수학시간에 배운것과 같다. 하지만 == 과 != 은 같다 와 같지 않다를 말한다.
a == b; 는 a 랑 b가 같다.
a != b; 는 a 는 b랑 다르다.
를 의미한다.

//논리연산자 (&&, ||, !)
&&은 &&을 기준으로 우변과 좌변 모두 true일때 true를 반환하고
||은 ||을 기준으로 우변과 좌변 중 하나라도 true이면 true를 반환한다.
!은 반환된 값을 반대로 반환해준다.

isTrue = !(a > 10) || (b > 20);

를 살펴보면

(a > 10) || (b > 20)

은 두변 모두 false인데 앞에 !을 붙여 isTrue변수에 true를 대입한다. 그러고 나서 다시 isTrue변수에 !isTrue를 넣기 때문에 (isTrue = !isTrue) false를 넣어준다.

//비트연산자 (&, |, ^)
비트연산은 이진법을 이용한다.
&을 이용하면 비교하는 자릿수가 둘다 1이면 1
|을 이용하면 비교하는 자릿수중 하나라도 1이면 1
을 반환한다.

5와 10을 2진수로 표현했다.

0101
1010

그래서 &을 사용하면 새로운 이진수가 나오는데 결과는 0000으로 나타난다.
둘다 1이 아니기 때문에 0을 반환한다. 0을 다시 10진수로 표현하여 출력하면 0이 출력된다.
|을 사용하면 둘중에 하나라도 1이기 때문에 1111이 나온다. 1111은 10진수로 출력하면 15다.
^을 사용하면 둘이 같으면 0을 반환하고 둘이 다르면 1을 반환한다.

0101
1010

계속 다르기 때문에 1111이 결과고 1111을 10진수로 표현하면 15가 나온다.

profile
C언어, C#, 그리고 유니티

0개의 댓글