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
...
/ }
}