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

         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++;       }

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 if sekä else-lauseiden käytöstä.
Ikuista silmukkaa tarvitaan hyvin usein ohjelmassa, kun ennalta ei tiedetä koska ohjelmissa, missä ei ennalta tiedetä milloin ohjelmasta tulisi poistua. Tyypillisesti ikuisesta
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;
}