본문 바로가기

아두이노 IDE/핵심프로그래밍 언어

12. if 조건문

핵심 아두이노 프로그래밍 12 - if 조건문


1. if
2. else
3. else if



어떠한 조건에 따라 원하는 작업을 실행하도록 만들기 위해서는 조건문을 사용해야합니다.

아두이노 프로그래밍에서 조건문은 크게 2 가지로 나뉩니다.

하나는 if 조건문이고, 다른 하나는 switch case 조건문입니다.

if 조건문은 조건을 판단해야할 보통의 경우에 많이 쓰이고, switch case 조건문은 여러 개의 조건들을 간편하게 판단할 때 쓰입니다.

상황에 따라 다르지만, 일단 조건문의 기본이 되는 if 조건문에 대해 먼저 알아보겠습니다.





1. if


if는 두 개의 값을 비교한 다음, 비교한 결과가 참이면 if 조건문 안에 있는 작업을 실행하게하고, 거짓이면 실행하지 않게 합니다.

먼저 if 조건문의 사용 방법부터 알아보겠습니다.


if ( 비교 대상1 == 비교 대상2) {
    실행명령
}


쉽게 이해되도록 한 번 상상해봅시다.

“만약 비가 온다면, 우산을 챙겨야한다”라는 말은 if 조건문으로 만든다면 어떻게 해야 할까요?

if (날씨 == 비) {
    우산을 챙기시오;
}

라고 하면 될 것입니다.

날씨와 비를 비교해서, 날씨가 비인 것이 참이라면 우산을 챙기고, 거짓이라면 우산을 챙기지 않게 될 것입니다.

이렇듯 if 조건문의 단계는 크게 두 단계로 나뉩니다.

1단계인 “만약 ~라면”2단계인 “~하시오”입니다.

여기서 사실 중요한 것은 1단계인 “만약 ~라면”입니다.

이 단계에서 필요한 것은 비교대상1, 비교 연산 기호, 비교대상2입니다.

비교하려는 두 대상은 비교 연산 기호로 서로 비교 한 다음, 그 결과가 참인지, 거짓인지 파악해야하기 때문입니다.

예를 들어 “만약 a가 10이면”은 “if(a == 10)”으로,
“만약 b가 50을 초과하면”은 “if(b > 50)”이라고 쓸 수 있습니다.

비교 연산 기호는
왼쪽과 오른쪽 모두 같을 경우, ==
왼쪽이 오른쪽 보다 클 경우, >
왼쪽이 오른쪽보다 작을 경우, <
왼쪽이 오른쪽보다 크거나 같을 경우, >=
왼쪽이 오른쪽보다 작거나 같은 경우, =<
를 사용합니다.

비교 연산 기호에 대해 더 자세히 알고 싶은 분들은 아래 포스트를 참고하세요.





이제 예제를 한 번 보겠습니다.



if (a > 100) digitalWrite(9, HIGH);    //  만약 a가 100보다 크면, 9번 핀을 HIGH로 하시오.

if (b > 100) {                       //  만약 b가 100보다 크면
    digitalWrite(10, HIGH);  //  10번핀을 HIGH로 하시오.
}

if (c > 100) {                        //  만약 c가 100보다 크면,
    digitalWrite(11, HIGH);   //  11번 핀을 HIGH로 하고,
    digitalWrite(12, LOW);    //  12번 핀을 LOW로 하시오.
}



위에 적힌 if 조건문은 모두 올바르게 작동됩니다.

차이점은 무엇일까요?

한 마디로 실행 조건이 하나일 경우에는 { }를 사용하지 않아도 가능하다는 것입니다.

다른 말로하면 실행 명령이 2가지 이상일 경우에는 반드시 {  }를 사용해야한다는 것입니다.

만약 실행 명령이 2가지 이상인데도 불구하고 {  }를 사용하지 않으면, 가장 처음에 있는 실행명령 하나만 조건문에 따라 작동하게 됩니다.

헷갈리신다면, 그냥 if ( ) 뒤에는 무조건 { 실행명령 }라고 표현하면 됩니다.





2. else



if 조건문의 비교 결과가 거짓일 경우 다른 실행 명령을 실행하고 싶을 때 사용합니다.

사용 방법을 먼저 보겠습니다.


if ( 비교대상1 == 비교대상2) {
    실행명령1
}
else {
    실행명령2
}



이번에도 쉽게 이해가 되도록 상상을 해봅시다.

“만약 비가 온다면, 장화를 신고, 아니면, 운동화를 신는다.”를 if 조건문 형식으로 쓰면 어떻게 될까요?


if (날씨 == 비) {
    장화를 신는다;
}
else {
    운동화를 신는다;
}


날씨가 비가 오는지 비교한 다음, 참일 경우 장화를, 거짓일 경우 운동화를 신게 될 것입니다.

그럼 이제 실전 예제를 한 번 보겠습니다.


if(digitalRead(5) == HIGH) {    //  5번 핀에 HIGH가 입력되면.
    digitalWrite(7, HIGH);         //  7번 핀에 HIGH를 출력하시오.
}
else {                                        // 아니면,
    digitalWrite(9, HIGH);        //  9번 핀에 HIGH를 출력하시오.
}





3. else if


if 조건문에서 제시한 조건이 거짓일 경우, 다른 조건을 넣고 싶을 때 사용합니다.

예제를 먼저 보겠습니다.


if (a > 500) {                          //  a가 500보다 크면,
    digitalWrite(5, HIGH);      //  5번 핀을 HIGH로 출력하시오.
}
else if (b > 500) {              //  a가 500보다 크지 않고, b가 500보다 크면
    digitalWrite(7, HIGH);    //  7번 핀을 HIGH로 출력하시오.
}
else {                                      //  a와 b 모두 500보다 크지 않으면,
    digitalWrite(11, HIGH);     //  9번 핀을 HIGH로 출력하시오.
}


else if는 상황에 따라 무한정으로 사용할 수 있습니다.


'아두이노 IDE > 핵심프로그래밍 언어' 카테고리의 다른 글

14. 시간  (0) 2017.03.02
13. switch case 조건문  (0) 2017.02.23
11. 복합 연산 기호  (0) 2017.02.23
10. 부울 연산 기호  (0) 2017.02.23
9. 비교 연산 기호  (0) 2017.02.23