...
...
for-silmukka
For-silmukka on hyvä valinta silloin kun toistojen lukumäärä on ennalta tiedossa.rakennetta kannattaa käyttää, jos toistojen määrä tiedetään ohjelmassa, ennen kuin toistot aloitetaan.
- For-lauseessa toistojen lukumäärää hallitaan ohjelmassa olevan toistolaskurin avulla.
- Se määritellään yleensä kokonaislukumuuttujana, jolle annetaan nimi i:
Code Block |
---|
int i;
|
- Toistot päätetään, kun laskuri on ylittänyt sovitun loppuarvon.
- Jos for-silmukoita on sisäkkäin, tarvitaan useita laskureita.
- Sisempien silmukoiden laskureille voidaan käyttää nimiä j ja k.
Toistolaskurin käsittely
Laskuriin kohdistuu kolme oleellista operaatiota. Nämä ovat:
- laskurin alkuarvon asettaminen (alkutoimet)
- laskurin arvon vertaaminen loppuarvoon (toistoehto)
- laskurin arvon kasvattaminen yhdellä (lopputoimet)
Nämä kaikki asiat tehdään for-lauseen alussa sulkujen sisällä:
Code Block |
---|
for (i=1; i<=N; i++)
|
- alkuarvon asettaminen tehdään kerran (ennen 1. toistoa)
- toistoehto tutkitaan ennen kunkin toistokerran alkua
- laskurin arvoa kasvatetaan kunkin toistokerran päätteeksi
Syntaksi
For-rakenteen kieliopillisesta muodosta on oleellista huomata että kaikki kolme toistoa ohjaavaa operaatiota kirjoitetaan for-riville sulkujen sisään:
Code Block |
---|
for (alkutoimet; toistoehto; lopputoimet |
Code Block |
for (alkuarvo; silmukassa olo ehto; lisäys toistokertojen välillä) { toiminnot silmukan sisällälauseita; } |
Esimerkki
Esimerkiksi seuraavassa Seuraavassa for-silmukassa tulostetaan i:n arvo arvot (0...9) ruudulle:
Code Block |
---|
int i; for (i=0; i<10; i++) { printf("\n i = %d",i); } |
...
do...while- toistorakennetta käytetään silloin, kun silmukkaan täytyy mennä kerran, vaikka silmukassa oloehto ei olisikaan tosi. do...while-rakennetta sanotaan loppuehtoiseksi while-silmukaksi toistorakenteeksi.
Code Block |
---|
do { toiminnot silmukan sisällä; } while (silmukassa olo ehto); |
...