For korduslause
For korduslauset kasutatakse teadaoleva arvu korduste tegemiseks. For tahab sulgudesse kolme avaldist: loenduseks kasutatava muutuja algväärtus, jätkamise tingimus (mingi võrdlus loenduseks kasutatavast muutujaga) ja loenduseks kasutatava muutujaga iga korduse lõpus tehtav tehe. Lihtsaim ja kõige tihedamini tarvitatav on :
int i; for (i=0; i<10; i++) { ... }
i väärtuseks saab esimeses avaldises määratud täisarv, selles näites 0. Kui keskmise avaldise, siin i<10, tulemus on tõene, siis loogelistes sulgudes olev koodiblokk tehakse ära. Seejärel teostatakse kolmas tehe, praeguses näites i väärtust suurendatakse 1 võrra. Kui i uus väärtus ei muutunud veel keskmist võrdlust vääraks, siis minnakse uuele ringile.
Pane tähele, et for-i sulgudes kasutatav muutuja tuleb ka eelnevalt deklareerida.
Traditsiooniliselt kasutatakse loendusmuutuja nimena i tähte. Kui for-kordusi on üksteise sees mitu, siis jägmistele j, k jne tähestikust. i++ on lühivorm kirjutamaks “suurenda ühe võrra”, samaväärne käsuga i=i+1; Seda nimetatakse inkrement tehteks ja eksisteerib ka dekrement tehe nt i--, mis on samaväärne i=i-1;
Mõnel juhul on koodi lühiduse huvides kasulik nullist ühe kaupa mingi arvuni loendamise asemel kasutada muud loogikat for korduse loendamiseks - kui loenduse muutujat saab millekski muuks kasutada. Näiteks LEDi heleduse vähendamiseks 5 sammuna:
int brightness; for (brightness = 255; brightness>0; brightness = brightness - 51) { analogWrite(13, brightness); delay(1000); } analogWrite(13, brightness); //kui brightness sai väärtuseks 0, siis for sisu enam ei läbitud, //et LED päriselt välja lülituks, mitte 51 peale ei jääks, on siin vaja veelkord analogWrite teha
Sama asja on võimalik saavutada eelpool kirjeldatud tavapärase lähenemisega, aga see nõuab rohkem koodiridu:
int i; int brightness = 255; for (i=0; i<5; i++) { analogWrite(13, brightness); delay(1000); brightness=brightness - 51; } analogWrite(13, brightness);