Toistorakenne

Wikipedia
Loikkaa: valikkoon, hakuun

Toistorakenne on ohjelmointikielten rakenne, joka toistaa annettua ohjelmakoodia, kunnes annettu toistoehto ei enää evaluoidu todeksi.[1].

While-rakenne[muokkaa | muokkaa wikitekstiä]

Java-kielessä, C-kielessä ja C++ -kielessä while-silmukka kirjoitetaan näin:

while (toistoehto) {
    /* toistettava ohjelmakoodi */
}

Python-kielessä taas näin:

while (toistoehto):
    #toistettava ohjelmakoodi

Python-kielessä ei ole erillisiä silmukan alku- eikä loppumerkkejä. Siksi sisennys eli rivien alussa olevat välilyönnit ovat erityisen tärkeitä.

Do{...}while-silmukka[muokkaa | muokkaa wikitekstiä]

do-while-silmukka eroaa while -silmukasta siinä, että toistoehdon tarkastus tehdään vasta silmukan rungon suorittamisen jälkeen, jolloin annettu runko tulee aina suoritetuksi vähintään kerran.

do {
    /* toistettava koodi */
} while (toistoehto);

For-silmukka[muokkaa | muokkaa wikitekstiä]

On samankaltainen kuin while, mutta sen arvot voidaan alustaa suoraan argumenteissä (Java):

for (int i = 0; i < 10; i++) {
//toistettava koodi
}

Foreach-silmukka[muokkaa | muokkaa wikitekstiä]

Foreach-silmukka toistaa silmukan runkoa, kunnes jokainen annetun kokoelman tietue on käsitelty. Foreach-rakenne piilottaa viittauksen taulukon indeksiin tai vastaavaan käsittelyn kannalta epäoleelliseen tietoon. Kokoelman on oltava yhteensopiva foreach-rakenteen kanssa (esim. Javan Collection, Rubyn enumerable).

Seuraava Java-kielinen esimerkkiohjelma laskee kokonaislukutaulukon alkioiden summan - Javassa avainsana on ei ole foreach, vaan for:

int sum(int[] a) {
    int result = 0;
    for (int i : a)
        result += i;
    return result;
}

Python:

#Luodaan lista.
lista = ["1. arvo", "2. arvo", "3. arvo"]
#silmukka:
for x in lista:
            print (x);

Whilella sama tulos saadaan koodilla(Python):

lista = ["1. arvo", "2. arvo", "3. arvo"]
i = 0
While i < len(lista):
 	print(lista[i])
	i++

Molemmat ohjelmat tulostavat listan jokaisen alkion.

Katso myös[muokkaa | muokkaa wikitekstiä]

Englanninkielisiä artikkeleita aiheesta[muokkaa | muokkaa wikitekstiä]

Viitteet[muokkaa | muokkaa wikitekstiä]