만져보는 임베디드 시스템/아두이노 소프트웨어

아두이노 소프트웨어-vi. 실행 흐름 제어

hanjinee 2020. 12. 31. 00:37

제타지니 두둥등장! 오늘의 포스트는 실햄 흐름 제어!

반복문과 조건문입니다.

 

 

아두이노 역시 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만 찍고 가만히 두시면 됩니다. 

 

728x90