Toistorakenteet
Kun jotain koodin osaa halutaan toistaa ennalta tiedetty määrä kertoja tai ennalta tuntematon määrä, niin voimme käyttää toistorakennetta.
C-kielessä on kolme toistorakennetta:
...
...
Näistä
...
kaksi
...
ensimmäistä
...
ovat
...
ns.
...
alkuehtoisia
...
ja
...
viimeinen,
...
do...while
...
on
...
loppuehtoinen
...
toistorakenne.
...
...
"Ikuinen"
...
silmukka
...
- Joskus
...
- on
...
- tarpeen
...
- rakenne,
...
- joka
...
- toistaa
...
- haluttua
...
- koodia
...
- "ikuisesti".
...
- Lainausmerkit
...
- siksi,
...
- että
...
- ei
...
- tietenkään
...
- mikään
...
- ohjelma
...
- pyöri
...
- ikuisesti,
...
- mutta
...
- merkintää
...
- käytetään
...
- ilmaisemaan
...
- että
...
- toistorakenne
...
- toistuu
...
- ennalta
...
- tuntemattoman
...
- määrän
...
- kertoja.
Esimerkki
Seuraavassa on esimerkki ikuisen silmukan sekä if ja else-lauseiden käytöstä.
Ikuista silmukkaa tarvitaan ohjelmissa, missä ei ennalta tiedetä milloin ohjelmasta tulisi poistua.
Ikuisesta silmukasta poistutaan break tai return käskyillä.
Code Block |
---|
h3. Esimerkki Seuraavassa on esimerkki ikuisen silmukan sekä _if_ ja _else_\-lauseiden käytöstä. Ikuista silmukkaa tarvitaan ohjelmissa, missä ei ennalta tiedetä milloin ohjelmasta tulisi poistua. Ikuisesta silmukasta poistutaan *break* tai *return* käskyillä. {code} /* Ohjelma, joka tulostaa millä välillä annettu luku on. * Lukuvälit ovat <10, 10-100 ja >100. * Käytetään ohjelmassa if, else if ja else -lauseita. */ #include <stdio.h> #include <conio.h> int main() { int Luku; while (1) // "ikuinen" silmukka { printf("\nAnna jokin luku: "); scanf("%d",&Luku); if (Luku < 10) printf("Luku on < 10"); else if (Luku >= 10 && Luku <= 100) printf("Luku on 10...100"); else printf("Luku on > 100"); if (Luku == 500) break; // poistutaan silmukasta, kun käyttäjä antaa luvun 500 } return 1; } {code} |