while() 문이란?
지난 시간에 for() 문에 대해서 배워봤습니다.
2023.02.08 - [아두이노(arduino)] - 아두이노 기본 문법 for() 문을 배워봅시다. led 밝기 조절해 보기.
아두이노 기본 문법 for()문을 배워봅시다. led 밝기 조절해보기.
for() 문이란? 오늘 for()을 배우기 위해 led로 진행해보려 합니다. led 켜고 끄기 알아보기 링크는 아래 링크로 이동하시면 됩니다. 2023.01.03 - [아두이노(arduino)] - 아두이노 digitalWrite (디지털 출력)와
ronco.tistory.com
while() 문도 for() 문과 마찬가지로 반복한다는 것에는 변함이 없습니다. 동일하다는 뜻이죠. 실제로 똑같은 행동을 아두이노로 제어할 수 있다는 말입니다.
그렇다면 두 가지 모두 다 같다면 하나만 사용하면 되지 않나요? 그렇게 해도 동작하는 데는 큰 차이는 없으나 때에 따라 사용을 조금 달리 해야 할 때가 있습니다.
제가 for() 문에서 설명드렸던 물류직원을 예로 들었습니다. 10벌의 옷을 받을 때까지 기록을 한다고 했습니다. while문은 이렇게 이해하시면 될듯합니다
물류직원이 옷을 받는데 매장진열대에 옷이 가득 찰 때까지 옷을 받는다. 혹시 이해가 가시나요?
현재 매장에 얼마만큼의 옷을 진열해야 가득 차는지 알 수가 없죠? 그전날 얼마나 팔렸는지 모르니까요. 그렇습니다. while문은 조건이 만족될 때까지 그냥 반복하는 것입니다.
for문과 while문을 비교해 봅시다.
for ( int i = 0; i < 10; i++){ // 처음 i값 시작은 0이고 10보다 작을 때까지 i를 증가시키세요.
printf("% d" i); // i 가 10보다 작다면 실행하세요.
}
while ( i!= 0 ) { // 입력된 i 값이 0이 아니라면, 즉 같지 않다면
scanf("% d", i); // i 값을 계속 입력받는다.
}
아래 도표로 정리해서 봅시다.
while()문 | for()문 |
명확하게 반복해야될 횟수를 모를때 | 내가 몇번을 반복해야할지 명확할때 |
짧은 코드는 상관없지만 길어지면 가독성이 나쁨 | 처음 시작할때 초기값, 반복횟수등 확인가능해 가독성이 좋음 |
while() 문을 이용해 led 밝기 켜고 끄기
int led_Pin = 3; // led_Pin 변수를 만들고 3을 대입.
int button = 2; // button 변수를 만들고 2를 대입
void setup()
{
Serial.begin(9600); // 시리얼 모니터를 사용하겠다.
pinMode(led_Pin, OUTPUT); // led_Pin을 출력으로 사용하겠다.
pinMode(button, INPUT); // button을 입력으로 사용하겠다.
}
void loop()
{
digitalWrite(led_Pin, HIGH); // led_pin을 켠다
while(digitalRead(button)==1){ // 버튼이 눌러졌다면
digitalWrite(led_Pin, LOW); //led_Pin를 끈다.
}
}
영상으로 확인해 볼게요.
버튼을 누르지 않았을 경우에는 led가 켜져 있다가 버튼만 누르면 led가 꺼지는 것을 확인할 수 있습니다.
얼마만큼 내가 오랫동안 버튼을 누르고 있을지는 모릅니다. 그건 누르는 사람 마음이니까요. 이렇듯 조건이 명확하지 않을 때 while문을 사용해 반복할 수 있습니다.
'아두이노(arduino)' 카테고리의 다른 글
아두이노 lcd 사용해보기 (I2C) _LiquidCrystal_I2C (0) | 2023.03.03 |
---|---|
아두이노 기본 문법 if()문을 배워봅시다. (0) | 2023.02.23 |
아두이노 기본 문법 for()문을 배워봅시다. led 밝기 조절해보기. (0) | 2023.02.08 |
아두이노 적외선센서 원리와 사용방법 / 예제 (1) | 2023.02.01 |
아두이노 부저(BUZZER) 사용 / 능동부저 , 수동부저 차이점 (0) | 2023.01.25 |