Ciklusok
A programok megírása során eddig felhasználtuk a szekvencia és szelekció programvezérlési szerkezeteket. Az előbbi segít abban, hogy az utasításaink ugyanabban a sorrendben kerüljenek végrehajtásra, mint amilyen sorrendben őket a program szövegében szerepeltettük. A második (elágazás) segítségével érhetjük el, hogy egyes utasításaink csakis akkor hajtódjanak végre, ha azokra szükség lenne. Egy feltétellel, vagy feltételrendszerrel írhatjuk le, melyekre van szükség, melyek hajtódhatnak végre a program futásának adott pontján.
A ciklusok akkor szükségesek, mikor valamely utasítást, vagy utasítások sorozatát nem csak egyszer, hanem többször is végre szeretnénk hajtani.
A ciklusok két jellemző részből állnak. Egyrészt definiálni kell ezt a bizonyos utasításblokkot, melyet ismételni szeretnénk. Ezt a részt ciklusmagnak nevezzük. Ezen felül szükséges megadni azt a részt, amely befolyásolja a ciklus ismétlését. Ehhez egy logikai feltételt használunk, mely értelemszerűen igaz vagy hamis értékű lehet. Ezt a feltételt ciklus vezérlő feltételnek nevezzük.

Vezérlés
Annak megfelelően, hogy a ciklus ismétlését az igaz vagy a hamis értékhez kapcsoljuk, beszélhetünk pozitív vezérlésű vagy negatív vezérlésű ciklusokról.


A negatív vezérlésű ciklusok mindenben egyenértékűek a pozitív vezérlésű ciklusokkal, de ők a ciklusmag ismétlését a vezérlő feltétel hamis értékéhez kötik. Ha a feltételünk igaz értékű lenne, úgy abbamarad a ciklus működése. Ezért ez esetben a vezérlő feltételt a ciklusból kilépés feltételének is nevezzük.
Tesztelés
Legyen bár ciklusunk negatív vagy pozitív vezérlésű - mindenképpen két fázisból áll a működése:
- a vezérlő feltétel kiértékelése,
- a ciklusmag utasítássorozatának végrehajtása.
Különbség adódhat abból, hogy a melyik fázissal kezdődik a ciklus működése. Kezdhetünk a vezérlő feltétel kiértékelésével, de kezdhetjük rögtön a ciklusmaggal is. Második esetben a ciklus vezérlő feltételének szerepét értelmezhetjük úgy is, hogy kell-e még egyszer végrehajtani. Első esetben azonban előállhat olyan szituáció, hogy a vezérlő feltétel már a legelső kiértékeléskor is elutasító értékű - ez esetben a ciklusmagot egyetlen egyszer sem kell végrehajtani.

Vegyük észre, hogy az előltesztelőség vagy hátultesztelőség nem igényli egyértelműen sem a pozitív, sem a negatív kiértékelést. Ennek megfelelően négyfajta ciklus képzelhető el:
- előltesztelő, pozitív vezérlésű,
- előltesztelő, negatív vezérlésű,
- hátultesztelő, pozitív vezérlésű,
- hátultesztelő, negatív vezérlésű.

A Pascal nyelven a while ciklus pozitív vezérlésű, mig a repeat ciklus negatív vezérlésű. A programozási nyelvek ebben eltérhetnek, milyen vezérlésű ciklusokat valósítanak meg. A BASIC nyelven például mind a négy ciklus szerepel.
A C# nyelven látni fogjuk, hogy csak pozitív vezérlésű ciklusok léteznek, és bár összesen négy lehetőségünk van ciklust fogalmazni, de az egyetlen (ritkább esetkben alkalmazható) hátultesztelős ciklust leszámítva a maradék három mindegyike előltesztelős viselkedésű.