for (alku; ehto; muutos) { koodi }Silmukan alussa suoritetaan komento alku, minkä jälkeen suoritetaan jokin määrä kierroksia. Jokaisen kierroksen alussa tarkastetaan, päteekö ehto. Jos ehto pätee, suoritetaan ensin koodi ja sitten komento muutos, minkä jälkeen alkaa seuraava kierros. Jos taas ehto ei päde, silmukka päättyy.
For-silmukan tavallinen käyttökohde on lukuvälin läpikäynti:
for (int i = 1; i <= 10; i++) { cout << i << " "; }Koodin tulostus on seuraava:
1 2 3 4 5 6 7 8 9 10
while (ehto) { koodi }Silmukan jokaisen kierroksen alussa tarkastetaan, päteekö ehto, ja jos pätee, suoritetaan silmukan sisällä oleva koodi. Silmukka päättyy, kun ehto ei enää päde.
While-silmukkaa voi käyttää vaikkapa näin:
int a = 1, b = 10; while (a < b) { cout << a << " " << b << " "; a++; b--; }Koodin tulostus on seuraava:
1 10 2 9 3 8 4 7 5 6
do { koodi } while (ehto);Tämä toimii muuten samalla tavalla kuin while-silmukka, mutta ehto tarkastetaan vasta silmukan kierroksen jälkeen. Tämän vuoksi koodi suoritetaan aina vähintään kerran.
Seuraava koodi esittelee do-silmukan toimintaa:
int x = 100; do { cout << x << " "; x /= 2; } while (x != 0);Koodin tulostus on seuraava:
100 50 25 12 6 3 1
break
keskeyttää silmukan ja siirtyy
sen jälkeiselle riville.
Esimerkiksi seuraavan silmukan ehtona on true
,
minkä vuoksi se periaatteessa jatkuu ikuisesti.
Komento break
kuitenkin keskeyttää silmukan.
int x = 1; while (true) { cout << x << " "; if (x == 10) break; x++; }Koodi tuottaa seuraavan tuloksen:
1 2 3 4 5 6 7 8 9 10
continue
siirtyy suoraan silmukan
seuraavalle kierrokselle eikä suorita jäljellä olevaa koodia.
Esimerkiksi seuraava silmukka käy läpi luvut 1...10,
mutta komento continue
siirtyy seuraavalle
kierrokselle, jos luku on parillinen,
joten silmukka tulostaa vain parittomia lukuja.
for (int i = 1; i <= 10; i++) { if (i%2 == 0) continue; cout << i << " "; }Koodi tuottaa seuraavan tuloksen:
1 3 5 7 9
goto
, joka hyppää toisaalla koodissa olevaan
nimiöön (label).
Esimerkiksi seuraavassa koodissa komento goto
hyppää nimiöön loppu
.
goto loppu; cout << "apina\n"; cout << "banaani\n"; loppu: cout << "cembalo\n";Tässä tapauksessa komennon
goto
vuoksi vain viimeinen
rivi tulostetaan:
cembaloYleensä kuitenkin komennon
goto
sijasta kannattaa käyttää
muita rakenteita, koska sen käyttäminen tekee koodista sekavaa.