2.7.3 Toistolause for

Silmukalla for toistetaan annettua toimenpidettä niin kauan kuin lauseen ehto-osa on tosi. Lauseen yleinen muoto on

for (alustus; ehto; päivitys) lause;

tai lohkon toistona

for (alustus; ehto; päivitys) {
  lause1;
  lause2;
  ...
}

for-lauseen suoritus menee seuraavasti:

Silmukkaa for käytetään usein jonkin tunnetun määrän kierroksia toistamiseen. Esimerkiksi tapauksessa, jossa lause halutaan toistaa 5 kertaa, voidaan käyttää kokonaislukumuuttujaa i kierroslaskurina seuraavasti:

for (i=0; i<5; i++) lause;

Tässä suoritetaan ensin alustus, i=0, sitten testataan ehto i<5 (pitää paikkansa), suoritetaan lause ja lopuksi päivitetään kierroslaskurin i arvoa, i++ (lisätään yhdellä). Ehto testataan taas: jos tosi, suoritetaan lause uudelleen ja lisätään laskuria jälleen yhdellä. Silmukkaa suoritetaan kunnes ehto tulee epätodeksi eli kunnes i saavuttaa arvon 5. Siis lause suoritetaan i:n arvoilla 0,1,2,3 ja 4, mutta ei enää arvolla 5.

Esimerkki

Halutaan laskea kokonaislukujen summa luvusta 0 lukuun 10. Silmukan laskuriksi valitaan kokonaislukumuuttuja i. Myös laskettavalle summalle tarvitaan muuttuja, otetaan siihen kokonaislukumuuttuja summa. Muuttuja summa täytyy muistaa alustaa nollaksi, muutoin saatu vastaus voi olla mitä vain.

/* *********************************************************
SUMMA.CPP
  Lasketaan kokonaislukujen 0...10 summa.
********************************************************* */

#include <iostream.h>

int main (void)
{
  int i, summa = 0;

  cout << "Summa luvuista";
  for (i=0; i<=10; i++) {
    cout << " " << i;     // tulostetaan lisättävä luku
    summa = summa + i;    // lisätään luku summaan
  }
  cout << " on " << summa << endl;

  return 0;
}

Ohjelma tulostaa näytölle yhden rivin:

Summa luvuista 0 1 2 3 4 5 6 7 8 9 10 on 55

Muuta edellistä esimerkkiä siten, että silmukan aloitus- ja lopetusluvut kysytään käyttäjältä.