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.