Toistorakenteet, for, while, do-while

Yleistä

C-kielessä on kolme toistorakenetta for, do while ja while for-toistorakenne on ehkä selväpiirteisin, for-sanan jälkeen tulee kaikki silmukan toimintaan

liittyvät määrittelyt.

for

for(alkuarvo; silmukassa olo ehto ; lisäys toistokertojen välillä)

{

toiminnot silmukan sisällä;

}

Esimerkiksi seuraavassa for-silmukassa tulostetaan i:n arvo 0...9

int i;

for(i=0;i<10;i++)

{

printf("\n i = %d",i);

}

do-while

do-while- tostorakennetta käytetään silloin, kun silmukkaan täytyy mennä kerran, vaikka silmukassa oloehto ei olisikaan tosi. do-while-rakennetta sanotaan loppuehtoiseksi while-silmukaksi

do

{

toiminnot silmukan sisällä;

}while(silmukassa olo ehto);

Esimerkki

int i=0;

do

{

printf("\ni = %d",i);

i++;

}while(i<10);

while

while- tostorakennetta käytetään silloin, kun silmukkaan ei mennä alkuehto ei ole tosi. while-rakennetta sanotaan alkuehtoiseksi while-silmukaksi

while(silmukassa olo ehto)

{

toiminnot silmukan sisällä;

}

Esimerkki

while(i<10)

{

printf("\ni = %d",i);

i++;

}

"Ikuinen" silmukka

Seuraavassa on esimerkki ikuisen silmukan ja if sekä else- lauseiden käytöstä. Ikuista silmukkaa tarvitaan hyvin usein ohjelmassa, kun ennalta ei tiedetä koska ohjelmasta tulisi poistua. Tyypillisesti ikuisesta silmukasta poistutaan break tai return käskyillä.

/*Ohjelma, joka tulostaa millä välillä annettu luku on. Lukuvälit ovat <10, 10-100 ja >100. Käytetään ohjelmassa if else lauseita */

#include<stdio.h>

#include<conio.h>

void 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*/

}

}