Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

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 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

Code Block

for(alkuarvo; silmukassa olo ehto ; lisäys toistokertojen välillä)
{
    toiminnot silmukan sisällä;
}

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

Code Block

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

Code Block

do
{
   toiminnot silmukan sisällä;
}
while(silmukassa olo ehto);

Esimerkki

Code Block

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

toistorakennetta:

  1. while
  2. for
  3. do...while

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 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ä.

Code Block

...


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