b'\n_START_ARTICLE_\nToistorakenne\n_START_PARAGRAPH_\nToistorakenne on ohjelmointikielten rakenne, joka toistaa annettua ohjelmakoodia, kunnes annettu toistoehto ei en\xc3\xa4\xc3\xa4 evaluoidu todeksi._NEWLINE_Useat ohjelmointikielet tukevat eri muotoja, mutta eiv\xc3\xa4t v\xc3\xa4ltt\xc3\xa4m\xc3\xa4tt\xc3\xa4 jokaista muotoa. Sivunkuvauskielet kuten HTML ja kyselykielet kuten SQL eiv\xc3\xa4t yleens\xc3\xa4 tue toistorakenteita.\n_START_SECTION_\nWhile-rakenne\n_START_PARAGRAPH_\nJava-kieless\xc3\xa4, C-kieless\xc3\xa4 ja C++ -kieless\xc3\xa4 while-silmukka kirjoitetaan seuraavasti:_NEWLINE_while (toistoehto) {_NEWLINE_    /* toistettava ohjelmakoodi */}_NEWLINE_Python-kieless\xc3\xa4 taas seuraavasti:_NEWLINE_while (toistoehto):_NEWLINE_    #toistettava ohjelmakoodi_NEWLINE_Python-kieless\xc3\xa4 ei ole erillisi\xc3\xa4 silmukan alku- eik\xc3\xa4 loppumerkkej\xc3\xa4. Siksi sisennys eli rivien alussa olevat v\xc3\xa4lily\xc3\xb6nnit ovat erityisen t\xc3\xa4rkeit\xc3\xa4.\n_START_SECTION_\nDo{...}while-silmukka\n_START_PARAGRAPH_\ndo-while-silmukka eroaa while -silmukasta siin\xc3\xa4, ett\xc3\xa4 toistoehdon tarkastus tehd\xc3\xa4\xc3\xa4n vasta silmukan rungon suorittamisen j\xc3\xa4lkeen, jolloin annettu runko tulee aina suoritetuksi v\xc3\xa4hint\xc3\xa4\xc3\xa4n kerran._NEWLINE_do {_NEWLINE_    /* toistettava koodi */} while (toistoehto);\n_START_SECTION_\nFor-silmukka\n_START_PARAGRAPH_\nfor-silmukka on samankaltainen kuin while, mutta sen arvot voidaan alustaa suoraan argumenteissa. Silmukan m\xc3\xa4\xc3\xa4rittelyss\xc3\xa4 annetaan kolmessa kohdassa alustustoimenpiteet, tarkistusehdot ja toiston j\xc3\xa4lkeen suoritettava toiminto, joita voi kielest\xc3\xa4 riippuen olla useita joka kohdassa. Tavanomainen m\xc3\xa4\xc3\xa4rittely n\xc3\xa4ytt\xc3\xa4\xc3\xa4 samanlaiselta C, C++ ja Java kieliss\xc3\xa4:_NEWLINE_for (int i = 0; i < 10; i++) {_NEWLINE_    //toistettava koodi}_NEWLINE_Ehtoja voidaan yhdist\xc3\xa4\xc3\xa4 eri kentiss\xc3\xa4 seuraavasti:_NEWLINE_int a, b;for (a = 0, b = 9; a < 10 && b >= 0; a++, --b){_NEWLINE_    printf("a: %d, b: %d\\n", a, b);}\n_START_SECTION_\nForeach-silmukka\n_START_PARAGRAPH_\nforeach-silmukka toistaa silmukan runkoa, kunnes jokainen annetun kokoelman tietue on k\xc3\xa4sitelty. Foreach-rakenne piilottaa viittauksen taulukon indeksiin tai vastaavaan k\xc3\xa4sittelyn kannalta ep\xc3\xa4oleelliseen tietoon. Kokoelman on oltava yhteensopiva foreach-rakenteen kanssa (esim. Javan Collection, Rubyn enumerable)._NEWLINE_Seuraava Java-kielinen esimerkkiohjelma laskee kokonaislukutaulukon alkioiden summan - Javassa avainsana on ei ole foreach, vaan for:_NEWLINE_int sum(int[] a) {_NEWLINE_    int result = 0;_NEWLINE_    for (int i : a)_NEWLINE_        result += i;_NEWLINE_    return result;}_NEWLINE_Python:_NEWLINE_#Luodaan lista.lista = ["1. arvo", "2. arvo", "3. arvo"]#silmukka:for x in lista:_NEWLINE_            print (x);_NEWLINE_C++ tukee foreach-silmukkaa C++11:st\xc3\xa4 l\xc3\xa4htien rajatun alueen for-silmukkana (engl. range-based for loop):_NEWLINE_#include <iostream>int main(){_NEWLINE_    int myint[] = {1, 2, 3, 4, 5};_NEWLINE__NEWLINE_    for (int i : myint)_NEWLINE_    {_NEWLINE_        std::cout << i << \'\\n\';_NEWLINE_    }}'