콘텐츠로 건너뛰기

아두이노 기초, C 연산자 알아보기

    들어가며

    이번 글에서는 프로그래밍 기초 지식 중에 하나인 연산자에 대해 한번 알아보겠습니다. 변수를 사용하는 방법을 알았다면 변수를 불러와 비교하고 계산하는 과정이 기다리고 있습니다. 그럼 어떻게 이러한 과정을 수행할 수 있을까요?

    연산자는 프로그래밍에서 변수나 값에 대한 다양한 연산을 수행하는 데 사용되는 기호입니다. Arduino 프로그래밍에서도 연산자는 필수적인 요소로, 산술, 비교, 논리, 할당, 증감 등 다양한 연산을 통해 프로그램의 논리적 흐름을 제어하고 데이터를 처리할 수 있습니다.

    이 글을 통해 프로그래밍에서 사용되는 다양한 연산자의 개념과 사용법을 설명하고자 합니다. 연산자의 활용법을 배우면 센서 데이터 처리, 조건부 제어, 변수 값 갱신 등 다양한 기능을 구현하는데 활용할 수 있습니다. 이를 통해 사용자는 다양한 프로젝트에서 연산자를 활용하여 보다 복잡하고 유용한 프로그램을 작성하는데 한발 더 다가갈 수 있을거에요.

    연산자에 대해 알아보기

    연산자는 변수나 값에 대해 산술, 비교, 논리, 할당 등의 연산을 수행하는 데 사용되는 기호입니다. Arduino 프로그래밍에서 연산자를 이해하고 활용하면, 보다 복잡하고 유용한 프로그램을 작성하는데 도움이 될 겁니다. 아래에서 주요 연산자와 그 사용법을 설명하겠습니다.

    아두이노 연산자 관련 공식 문서

    산술 연산자

    산술 연산자는 더하기, 빼기, 곱하기, 나누기 등 기본적인 수학 연산을 수행합니다.

    연산자설명예제
    +더하기a + b
    -빼기a - b
    *곱하기a * b
    /나누기a / b
    %나머지 a % b

    예제:

    int a = 10;
    int b = 3;
    int sum = a + b;       // sum은 13
    int difference = a - b; // difference는 7
    int product = a * b;    // product는 30
    int quotient = a / b;   // quotient는 3
    int remainder = a % b;  // remainder는 1

    비교 연산자

    비교 연산자는 두 값을 비교하고, 참(true) 또는 거짓(false)을 반환합니다. 이렇게 출력 되는 결과를 활용해 조건문 등에서 활용할 수 있습니다.

    연산자설명예제
    ==같음a == b
    !=같지 않음a != b
    >a > b
    <작음a < b
    >=크거나 같음a >= b
    <=작거나 같음a <= b

    예제:

    int a = 10;
    int b = 3;
    bool result;
    
    result = (a == b);   // result는 false
    result = (a != b);   // result는 true
    result = (a > b);    // result는 true
    result = (a < b);    // result는 false
    result = (a >= b);   // result는 true
    result = (a <= b);   // result는 false

    논리 연산자

    논리 연산자는 주로 조건문에서 여러 조건을 결합할 때 사용됩니다. 완전 초보라면 조건문에서 활용하는 방법을 함께 알아보는 것이 사용법을 익히기에 좋습니다. 아직 조건문을 접하지 않으신 분이라면, 이러한 연산자가 있음을 기억하고, 조건문에 대해 배울 때 다시 한번 방문해 확인 하시는 것이 좋을 듯 해요.

    연산자설명예제
    &&논리 AND (그리고)a && b
    ||논리 OR (또는)a || b
    !논리 NOT (~이 아닌)!a

    예제:

    bool a = true;
    bool b = false;
    bool result;
    
    result = (a && b);  // result는 false
    result = (a || b);  // result는 true
    result = !a;        // result는 false

    할당 연산자

    할당 연산자는 변수에 값을 할당하거나, 변수의 값을 갱신합니다.

    연산자설명예제
    =할당a = b
    +=더해서 할당a += b
    -=빼서 할당a -= b
    *=곱해서 할당a *= b
    /=나누어서 할당a /= b
    %=나머지를 할당a %= b

    예제:

    // 아래는 연속해서 코드가 실행된다는 가정하에 작성된 결과값입니다. a가 변경되는 값을 기억하면서 연산을 해 보세요.
    
    int a = 10;
    int b = 3;
    
    a += b;  // a는 이제 13
    a -= b;  // a는 이제 10
    a *= b;  // a는 이제 30
    a /= b;  // a는 이제 10
    a %= b;  // a는 이제 1

    증감 연산자

    증감 연산자는 변수의 값을 1씩 증가시키거나 감소시킵니다. 이 연산자는 변수 뒤에 올수도, 앞에 위치할 수도 있는데요. 이 위치에 따라 연산 수행 시점이 달라집니다.

    연산자설명예제
    ++1 증가a++ 또는 ++a
    --1 감소a-- 또는 --a
    증감연산자가 뒤에 있다면

    예제:

    이번 예제는 증감 연산자의 위치에 따른 수행 시점을 확인하기 위해 시리얼 모니터로 출력하는 예제를 들어 설명해 보겠습니다.

    void setup() {
      Serial.begin(9600); // 시리얼 통신 시작
    }
    
    void loop() {
      // 반복 실행되는 코드 없음
        delay(1000);
      // 첫 번째 예제
      int a = 5;
      Serial.print("Initial value of a: ");
      Serial.println(a); // a는 5
      Serial.print("Value of a++: ");
      Serial.println(a++); // a++는 5 (출력을 먼저 한 뒤 변수 값이 증가)
      Serial.print("Value of a after a++: ");
      Serial.println(a); // a는 6 (출력후 증가된 값을 출력)
    
      // 두 번째 예제
      a = 5;
      Serial.print("Initial value of a: ");
      Serial.println(a); // a는 5
      Serial.print("Value of ++a: ");
      Serial.println(++a); // ++a는 6 (값을 증가 시킨 후 출력)
      Serial.print("Value of a after ++a: ");
      Serial.println(a); // a는 6 (증가된 값을 그대로 출력)
    }

    코드 설명

    1. 첫 번째 예제 (a++)
    • int a = 5;a를 5로 초기화합니다.
    • Serial.println(a);로 초기값 5를 출력합니다.
    • Serial.println(a++);에서 a++a의 현재 값을 출력하고, 그 다음에 a를 1 증가시킵니다. 따라서 출력되는 값은 5입니다.
    • Serial.println(a);a의 증가된 값을 출력합니다. 따라서 출력되는 값은 6입니다.
    1. 두 번째 예제 (++a)
    • a를 다시 5로 초기화합니다.
    • Serial.println(a);로 초기값 5를 출력합니다.
    • Serial.println(++a);에서 ++aa의 값을 먼저 1 증가시키고, 증가된 값을 출력합니다. 따라서 출력되는 값은 6입니다.
    • Serial.println(a);a의 값을 출력합니다. 따라서 출력되는 값은 6입니다.
    a++는 현재 값을 사용하고 나서 증가시키고,
    ++a는 먼저 증가시키고 나서 그 값을 사용한다.

    결론

    연산자는 프로그래밍에서 변수나 값을 조작하고 제어하는데 사용됩니다. 산술 연산자, 비교 연산자, 논리 연산자, 할당 연산자, 증감 연산자를 이해하고 활용하면 보다 복잡하고 유용한 프로그램을 작성할 수 있습니다. 각 연산자의 사용법과 예제를 통해 연산자의 개념을 명확히 이해하고 실제 프로젝트에 적용해 보세요.