[Unity 입문 강좌 - 4] C# 유니티 사칙연산과 복합연산자

사칙연산

유니티에서 사칙연산은 우리가 유치원, 초등학교 때 배우는 그 사칙연산이다. 덧셈, 뺄셈, 곱하기, 나누기는 모두 알고 있는 것처럼  직관적으로 사용이 가능하다. 여기서 우리가 생소한 사칙연산은 % 이다. 여기서 % 는 나눗셈 후 나머지를 반환하는 연산이다.

public class NewBehaviourScript : MonoBehaviour
{

    int a = 4;
    int b = 2;
    int c;    

    void Start()
    {
        c = a + b; // 덧셈
        Debug.Log(c);  

        c = a - b; // 뺄셈
        Debug.Log(c);

        c = a * b; //곱셈
        Debug.Log(c);

        c = a / b; //나눗셈
        Debug.Log(c);


        a = 5;
        b = 2;
        c = a % b; //나머지
        Debug.Log(c);
    }

}

 

위에서 변수 a에 4를 할당하고, 변수 b에 2를 할당한다. 때문에 덧셈을 하면 6, 뺄셈을 하면 2, 곱셈을 하면 8, 나눗셈을 하면 2가 출력된다.  나머지를 구하기 위해서 변수 a에 5를 b에 2를 다시 할당한다. 때문에 나머지는 1이 출력된다.

 

 


복합 연산자

복합 연산자는 연산과 대입을 한번에 표현합니다. 자기 자신에 어떤 값을 사칙연산하고 싶을 때 복합 연산자를 사용할 수 있습니다.  아래 코드는 복합연산자를 이용하여 a값에  더하기, 빼기, 나누기, 곱셈, 나머지를 진행하고 있는 코드입니다.  위에서 배운 연산자를 사용한다면 a = a + 5; 로 코드를 작성할 수 있습니다. 그런데 복합 연산자를 사용한다면 a += 5로 코드를 간결하게 작성할 수 있습니다. 

public class NewBehaviourScript : MonoBehaviour
{

    int a = 11;    

    void Start()
    {

        a += 5; // a = a + 5;
        Debug.Log(a);
        a = 11;

        a -= 5; // a = a - 5;
        Debug.Log(a);
        a = 11;

        a *= 5; // a = a * 5;
        Debug.Log(a);
        a = 11;

        a /= 5; // a = a / 5;
        Debug.Log(a);
        a = 11;

        a %= 5; // a = a % 5;
        Debug.Log(a);
        a = 11;

    }

}

 

처음에 a에 11을 할당합니다. 그리고 복합 연산자를 이용해서 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지를 연산을 진행합니다. 이에 덧셈은 16, 뺄셈은 6, 곱셈은 55, 나눗셈은 2, 나머지는 1의 값이 출력됩니다. 여기서 Debug.Log 아래 a에 다시 11을 할당해주는 것을 볼 수 있습니다. 이는 아래의 연산을 위해서 다시 a가 처음 할당받은 11 값으로 돌려주기 위해서 작성됐습니다. 만약 11로 값을 할당하지 않으면 a의 값은 위의 연산된 값이 아래 연산에 영향을 미칩니다.

 

 


증감 연산자

우리는 코드를 짜다보면 일씩 증가하거나 일씩 감소하는 부분을 만들고 싶을 때가 있을 것이다. 이때 사용하면 좋은 것이 증감 연산자입니다. 증감 연산자는 아래 코드에서 사용한 것처럼 a++, a-- 로 사용할 수 있고 ++a, --a로도 사용할 수 있습니다. 둘의 차이는 다음과 같습니다. ++a는 값을 1 증가시킨 후에 연산을 진행합니다. a++는 해당 연산을 수행하고 나서 값을 1 증가시킵니다. 감소도 마찬가지입니다.

public class NewBehaviourScript : MonoBehaviour
{

    int a = 11;    

    void Start()
    {

        a++; // a = a + 1;
        Debug.Log(a);
        a = 11;

        a--; // a = a - 1;
        Debug.Log(a);
        a = 11;


        Debug.Log(a++);
        Debug.Log(++a);

    }

}

 

처음에 a에 11을 할당합니다. 그리고 증감 연산자를 이용하여 a의 값을 증가시키고 감소시킵니다. 처음 a의 출력은 12 두 번째 a의 출력은 10입니다. 그리고 처음 Debug.Log의 경우는 a++을 출력하는 것이기 때문에 a값을 출력하고 값이 증가합니다. 때문에 11이 출력됩니다.  그리고 두 번째 Debug.Log의 경우 ++a이기 때문에 값이 증가되고 출력됩니다. 때문에 13이 출력됩니다.