제타지니 두둥등장! 오늘의 포스트는 실햄 흐름 제어!
반복문과 조건문입니다.
아두이노 역시 C/C++처럼 위에서 아래로 순차적으로 실행됩니다 . 그런데, 이 실행 흐름을 제어할 수 있는 것이 바로 조건문과 제어문 입니다.
조건문은 주어진 조건을 만족시키는 경우에만 특정 블록을 실행하도록 하기 위해 사용되며, if - else문과 switch-case 문이 있습니다.
반복문은 특정 블록의 문장을 지정한 횟수만큼 또는 주어진 조건을 만족하는 동안 실행하기 위해 사용되며, while문, do-while문, for문이 있습니다.
조건문
1. if - else
if 안에 주어진 조건을 만족시키는 가에 따라서, 실행하는 코드의 순서가 달라집니다..
ex)
if(조건문){
//문장1
}
else{
//문장2
}
//문장 3
조건문 만족할 경우
문장 1 ==> 문장 3 순서로 실행
조건문 만족하지 않을 경우
문장 2 ==> 문장 3 순서로 실행
2. switch - case문
if문은 true나 false 값을 갖는 조건식을 사용하는 것과 달리, switch-case문은 정숫값을 갖는 정수식을 조건식으로 사용하므로 필요 갯수만큼 흐름을 분리해서 사용할 수 있습니다.
switch(정수식){
case 정수값1:
//문장1
break;
case 정수값2:
//문장2
break;
case 정수값3:
//문장3
break;
}
//문장4
switch 다음의 정수식에서 나온 정수값에 따라서 case에 맞는 문장을 실행하게 됩니다.
반복문
while과 do-while문
while문과 do-while문 모두 조건식을 만족하는 동안 반복해서 실행할 문장을 지정하기 위해 사용합니다.
다만 이 둘의 차이는 조건식을 어디에서 검사할 것인가에 차이점을 두고 있습니다.
코드의 예제를 보자면
다음과 같습니다.
while문의 경우 조건식을 먼저 검사하고 문장1에 들어가는 반면, do-while문은 문장1을 먼저 실행하고 조건식을 검사합니다. 즉, do-while 내에 포함된 문장은 최소한 한번 실행되는 것이지요.
for문
for문은 초기 조건, 반복 조건, 탈출 조건 등을 한번에 지정할 수 있습니다.
따라서, 다양한 제어가 가능할 뿐더러 유연성이 높아 반복문에서도 가장 많이 사용됩니다.
for문을 사용하면, while문과 do-while문에 비해 간략하게 표현이 가능합니다.
코드는 다음과 같습니다.
for(선언 및 초기화 ; 조건식 ; 증감식){
//문장1
}
//문장2
for문의 예를 들자면~
for(int i = 0; i < 10 ; i++){
//문장 1
}
//문장 2
즉 정수 i 가 0 부터 (초기 int i = 0, 만약 이전에 i라는 변수를 정수로 선언했다면, for문안에 int를 쓰지 않아도 됨.) i가 루프 한번 돌때마다 1씩 증가하여(i ++) i가 9까지 (i<10) 루프를 돌며 문장1을 반복적으로 실행하다 i가 10이 되는 순간 루프를 끝내고 문장2로 넘어가는 구조입니다.
무한 반복문
while문, do-while문, for문을 이용해서 무한 반복문을 만들 수 있습니다. 다음과 같이 만드시면 됩니다.
1. while(true){ }
2. do{ }while(true);
3 .for( ; ; ){ }
true 대신에 1을 넣으셔도 됩니다.
for문안은 저렇게 semi-colon만 찍고 가만히 두시면 됩니다.
'만져보는 임베디드 시스템 > 아두이노 소프트웨어' 카테고리의 다른 글
아두이노 소프트웨어-viii. C언어 함수, 포인터 (0) | 2020.12.31 |
---|---|
아두이노 소프트웨어-vii. 배열 (0) | 2020.12.31 |
아두이노 소프트웨어-v.연산자 (0) | 2020.12.31 |
아두이노 소프트웨어-iv.변수 (0) | 2020.12.31 |
아두이노 소프트웨어-iii.변수의 자료형(데이터형) (0) | 2020.12.31 |