개발하는 기획자

반응형

 프로그램을 작성하다보면 변수의 상태에 따라 또는 프로그램에 진행에 따라 프로그래머가 원하는 동작을 수행하게 만들어야 됩니다.

 

 프로그래밍에서 조건문은 프로그래머가 정한 조건에 따라 달라지는 상황에 맞는 동작을 수행할 수 있도록 도와주는 함수입니다.

 

 포스팅 제목이 아두이노의 조건문이라 표시되어 있지만, 조건문 함수 역시 C언어와 C++언어와 동일한 문법으로 동일하게 사용되고 있습니다.

 

아두이노에서 조건문은 크게 2가지

1. if - else 조건문

2. switch - case 조건문

 

으로 사용되고 있으며, 이번 포스팅에서는 if - else 조건문에 대한 설명과 예시를 통한 프로그램 동작에 대해서 설명드리겠습니다.

 

 

1. 조건문 if


if 조건문은 다음 문법으로 사용이 가능합니다.

if(조건문 1) {

   실행 코드;       // 조건문 1이 True일 때 실행

} else if(조건문 2) {

   실행 코드;        // 조건문 2가 True일 때 실행

} else {

   실행 코드;        // 조건문 1과 조건문 2가 False일 때 실행

}

조건문이 '참'일 때. 즉, True(1) 값이 나올 경우 중괄호('{', '}') 안의 실행 코드를 실행시킵니다.

 

C언어 및 C++언어는 기본적으로 위에서 아래쪽으로 순서대로 실행되는 것을 기본 법칙이라, 순서대로

if(조건문 1)에서 '조건문 1'이 참인 경우 실행되고, 거짓인 경우 아래쪽에 있는

else if(조건문 2)로 내려와 '조건문 2'가 참인지 거짓인지 확인한 뒤, 참인 경우 실행 시킵니다.

그 아래에 있는 else은 위에 모든 조건문이 거짓인 경우에만 실행 됩니다.

 

아두이노 코드로 예를 들면,

int led_pin = 12;
int a, b, c = 0;
char input;

void setup() {
  // put your setup code here, to run once:
  pinMode(led_pin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  while (Serial.available() > 0)
  {
    input = Serial.read();
  }

  if (input == 1) {     // input이 1이면
    digitalWrite(led_pin, HIGH);    // LED를 ON 시킴
  } else if (input == 2) {      // input이 2이면
    digitalWrite(led_pin, LOW);     // LED를 OFF 시킴
  } else {        // input이 1,2가 아니면,
    digitalWrite(led_pin, HIGH);
    delay(1000);
    digitalWrite(led_pin, LOW);
    delay(1000);                // LED를 1초 간격으로 ON/OFF 반복함
  }
}

다음 코드는 사용자가 원하는 LED 동작을 시리얼 통신으로 수신받은 변수에 따라 LED를 켜고 끄는 프로그램을 작성할 수 있습니다.

 

간단하지만, 프로그램을 작성할 때 가장많이 사용하는 함수이며 활용도가 굉장히 높은 편입니다. 이어 다음 포스팅에서는 유사하지만 문법이 다른 Switch - Case 조건 문에 대해 알아볼 수 있도록 하겠습니다.

반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver
-->