Vezérlési szerkezetek - Ciklusok

A ciklusok (más néven loopok) olyan programozási struktúrák, amelyek lehetővé teszik, hogy egy adott kódblokkot többször futtassunk.

A ciklusok használatával hatékonyan lehet ismétlődő feladatokat végrehajtani a programokban.

Pythonban két ciklust ismerünk: while és for ciklus

WHILE ciklus

A while ciklust akkor használjuk, ha nem tudjuk előre, hogy hányszor kell futtatni a kódblokkot, de van egy feltétel, ami alapján eldönthetjük, hogy folytatjuk-e a futtatást.

A while ciklust szokták elöltesztelő ciklusnak is hívni, mivel először megvizsgálja, hogy egy általunk megadott feltétel fennáll‑e, és ha igen, akkor lefutnak a ciklusban lévő parancsok, a folyamat pedig mindaddig ismétlődik, amíg a megadott feltétel fennáll.

Általános formája:

while feltétel: # kódblokk

A ciklus addig fut, amíg a feltétel igaz.

Példaként, írjunk egy while ciklust, amely a számokat írja ki 1-től 5-ig. A ciklus addig ismétlődik, amíg az i változó értéke eléri az 5-öt.

i = 1 while i <= 5: print(i) i += 1 # i = i + 1

A fenti példában az i változó értéke folyamatosan növekszik eggyel minden egyes cikluson belül, amíg el nem éri az 5-öt. A ciklusmagban található print() függvény kiírja az aktuális i értékét, majd az i értéke növekszik eggyel. A ciklus futása tehát 5-ször ismétlődik, mivel a ciklusfeltétel igaz minden egyes futás után, amíg az i értéke el nem éri az 5-öt.

A while ciklust sokféle módon lehet alkalmazni, azonban fontos, hogy vigyázzunk az olyan végtelen ciklusokkal, amelyek sosem állnak le, mert azok a program futását blokkolhatják. Egy végtelen ciklust akkor hozunk létre, ha a feltétel sosem válik hamisra.

Példák:
A program addig kérdezi a felhasználótól, hogy mondja-e még egyszer, hogy "Vidd ki a szemetet!", amíg a felhasználó nem válaszol "n"-nel.

folytatja = True while folytatja: print('Vidd ki a szemetet!') valasz = input('Mondjam még egyszer? (i/n)') if valasz == 'n': folytatja = False print('>> Program vége! <<')

A program addig kér a felhasználótól új számot, amíg az nincs 5 és 10 között.

szam = int(input('Adj meg egy számot 5 és 10 között! ')) # while szam < 5 or 10 < szam: while not 5 <= szam <= 10: szam = int(input('Helytelen érték! Adj meg egy számot 5 és 10 között! ')) print('Rendben!')

Feladatok:

  1. Írj egy programot, amely kiírja a páros számokat 1 és 10 között!
  2. Írj egy programot, amely csökkenő sorrendben írja ki a számokat 1 és 10 között!
  3. Írj egy programot, amely kiírja a páratlan számokat csökkenő sorrendben 1 és 10 között!
  4. Írj egy programot, amely a felhasználó által meghatározott alkalommal írja ki a bekért szöveget!
  5. Írj egy programot, amely a felhasználótól páros számot kér be. Amennyiben a megadott szám páratlan, újra és újra megtörténik az adatbekérés mindaddig, amíg végül páros számot nem ad meg a felhasználó.
  6. Írj egy programot, amely összeadja az 1-től 10-ig terjedő számokat.
  1. Írj egy programot, amely addig ismétli a "Hello!" szöveget, amíg a felhasználó nem ír be egy "q" karaktert.
  1. Írj egy programot, amely megszámolja, hány számot ad meg a felhasználó, amíg nem ír be egy 0-t.
  1. Írj egy programot, amely addig kérdez egy kódot a felhasználótól, amíg az helyes nem lesz. Ha eltalálta, akkor írja ki, hogy "Eltaláltad!" ellenkező esetben írja ki, hogy "Nem talált!" és kérje újra a kódot.