Moja ya mambo ambayo kompyuta ni nzuri zaidi ni kurudia. Tunawezaje kumshawishi Karel kutekeleza kizuizi cha kanuni mara nyingi? Kuona jinsi kurudia inaweza kutumika, fikiria kazi ya kuweka 42 koni s:
Kwa kuwa unajua kuwa kuna 42 koni s hasa kuweka, taarifa ya kudhibiti unayohitaji ni mzunguko for , ambayo inasema kwamba unataka kurudia operesheni fulani mara fasta. Mfumo wa taarifa hiyo unaonekana ngumu hasa kwa sababu ni nguvu zaidi kuliko kitu chochote ambacho Karel anahitaji. Toleo pekee la syntax ambayo Karel anatumia ni:
for(int i = 0; i < hesabu ; i++){
maelezo ya kurudiwa
}
Tutaenda juu ya maelezo yote ya mzunguko for baadaye katika darasa. Kwa sasa unapaswa kusoma mstari huu kama njia ya kueleza, "kurudia maneno kati ya mabano ya curlyhesabunyakati. "Tunaweza kutumia hii mpya mzunguko for kuweka 42 koni s kwa kuchukua nafasihesabuna 42 na kuweka amri wekaKoni() ndani ya mzunguko for code block. Tunatoa amri katika msimbo wa kuzuia mwili :
Msimbo hapo juu unasababishwa. Jaribu kubadili ili iweze tu 15 koni s.
Mfano uliopita unatoa hisia kwamba mzunguko for hurudia mstari mmoja wa kificho. Hata hivyo mwili wa mzunguko for (kauli ambayo hurudiwa) inaweza kuwa mistari mingi. Hapa ni mfano wa programu koni katika kila kona ya dunia:
Jihadharini sana na njia ambayo programu inapita kupitia kauli hizi za udhibiti. Mpango run s kwa kuweka amri katika mwili mzunguko for moja kwa wakati. Inarudia mwili mara nne.
Labda sehemu moja ngumu zaidi ya kuandika kitanzi ni kwamba unahitaji hali ya ulimwengu mwishoni mwa kitanzi ( postcondition ) kuwa hali halali ya dunia kwa mwanzo wa kitanzi (ya precondition ). Katika mfano hapo juu mechi ya mawazo. Nyakati nzuri. Mwanzoni mwa kitanzi, Karel daima ni mraba na hakuna koni s inakabiliwa na kona inayofuata tupu. Je, ungependa kufuta geukaKushoto mwisho wa kitanzi? Postcondition mwishoni mwa iteration ya kwanza hakuweza kukidhi tena mawazo yaliyofanywa kuhusu Karel inakabiliwa na kona inayofuata tupu. Nambari hiyo inahaririwa. Jaribu kufuta geukaKushoto(); amri ya kuona kinachotokea!
Techniacally mwili wa mzunguko for unaweza kuwa na code yoyote ya mtiririko wa kudhibiti, hata loops nyingine. Hapa ni mfano wa mzunguko for ambao unarudia wito kwa njia ambayo pia ina mzunguko for . Tunaita hii kitanzi "chafu". Jaribu kusoma kupitia programu, na uelewe kile kinachofanya, kabla ya run :