Language Switcher Fallback

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);