Döngüler bir program içerisinde belirli işleri defalarca yapmamızı sağlayan komut bloklarıdır. Sonsuz döngüler yapabildiğimiz gibi belirli kriterleri sağlayana kadar oluşan döngüler de yapabiliriz.
Arduino dilinde 3 tip döngü vardır;
- while
- do-while
- for
“while” Döngüsü
1 2 3 4 |
while(şart) { komut veya komutlar; } |
While döngüsü içerisinde ki şart doğru olduğu sürece devam eder. While döngüsünde şart başlangıçta kontrol edilir.
1 2 3 4 5 6 7 |
int i = 0; while(i < 10) { i++; Serial.println(i); delay(500); } |
Örnekte i adında içeriği 0 olan tam sayı değişkeni tanımlanmıştır. while döngüsü şartında i 10’dan küçük olduğu sürece döngü çalışacaktır. Döngü komutlarında i değişkeni her döngüye girişte 1 artırılmaktadır. Seri portdan i değeri bilgisayara veya seri porta bağlı olan aygıta gönderilir. En son i değeri 10 olacağı için ekranda 1’den 10’a kadar olan sayılar 500 msn aralıklarla gönderilmektedir.
“do-while” Döngüsü
1 2 3 4 |
do { komut veya komutlar; }while(şart); |
do – while döngüsü while döngüsü ile aynıdır. Tek farkı döngüye bir kez girilir, şart döngü sonunda kontrol edilir. Dolayısıyla şart yanlış olsa bile döngüye 1 kez girilir.
1 2 3 4 5 6 7 8 |
int i = 0; do { i++; Serial.println(i); delay_ms(100); }while(i < 100) Serial.println("Donguden cikildi"); |
Örnekte i adında içeriği 0 olan tam sayı değişkeni tanımlanmıştır. do-while döngüsü şartında i 100’den küçük olduğu sürece döngü çalışacaktır. Döngüye girildiği an i değer 1 olur ve seri portdan gönderilir. 100 msn beklendikten sonra şart kontrol edilir. En son i değeri 100 olacağı için ekranda 1’den 100’e kadar olan sayılar 100 msn aralıklarla gönderilmektedir.
“for” Döngüsü
1 2 3 4 |
for( başlangıç; şart; adım) { komut veya komutlar; } |
En çok kullanılan döngüdür. Diğer döngülerden farkı başlangıç değeri, bitiş değeri ve adım miktarı tek satırda belirtilmektedir.
1 2 3 4 5 |
for(int i = 0; i < 50; i++) { Serial.println(i); delay_ms(1000); } |
Örnekte başlangıç olarak i değerine 0 sayısı atanmıştır. Şart i değeri 50’dan küçük olduğu sürece i değeri 1 arttırılacak ve 1 saniye aralıklarla seri portdan gönderilecektir. i değeri 50 olduğu anda şart yanlış olur ve döngüden çıkar. Dolayısıyla seri porta 0’dan 50’ye kadar olan sayılar gönderilecektir.