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

...

Code Block
while (ehto)
{
    lauseita;
}

Esimerkki

Ohjelman pätkä, joka tulostaa arvot 0...9 allekain ruudulle käyttäen while-toistorakennetta:

Code Block
int i=0;
while (i<10)
{
   printf("\ni = %d",i);
   i++;
}

"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 tietämättömän määrän kertoja.

Esimerkki

Seuraavassa on esimerkki ikuisen silmukan ja if sekä 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

/* 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 Lukui=0;
   while (1) // "ikuinen" silmukkai<10)
   {
      printf("\nAnna jokin luku: ");
      scanf("ni = %d",&Lukui);

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