You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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);
}
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/              }
        }

  • No labels
You must log in to comment.