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

...

  1. while
  2. for
  1. 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 silmukasta poistutaan break tai return käskyillä.

Code Block


h3. 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 silmukasta poistutaan *break* tai *return* käskyillä.
{code}
/* 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;
}
{code}