Kihagyás

5. Ciklusok

Képzeld el, hogy ki kell íratnod a képernyőre egymás alá ezerszer, hogy "Szeretem a programozást!". Ugye, hogy nem írnál be ezer darab print parancsot kézzel? Erre találták ki a ciklusokat (ismétléses utasításokat).

A programozásban a ciklusok segítségével arra utasítjuk a számítógépet, hogy egy adott kódrészletet ismételjen meg addig, amíg egy feltétel igaz, vagy egy meghatározott alkalommal.

5.1. A feltételhez kötött ismétlés: a while ciklus

A while (amíg) ciklus akkor hasznos, ha nem feltétlenül tudjuk előre pontosan, hányszor kell valamit megismételni, de azt tudjuk, hogy milyen feltétel mellett kell folytatnia a munkát.

# Számoljunk el 1-től 5-ig
szam = 1

while szam <= 5:
    print(szam)
    szam = szam + 1  # Nagyon fontos: növeljük a változó értékét, különben végtelen ciklusba jutunk!

print("A ciklus véget ért.")

Hogyan működik? 1. A gép megnézi a while utáni feltételt (szam <= 5). 2. Ha a feltétel igaz, lefuttatja a benne lévő (behúzott) utasításokat. 3. Újraellenőrzi a feltételt. Ezt addig ismétli, amíg a feltétel hamissá nem válik.

⚠️ Vigyázat a végtelen ciklussal! Ha elfelejted növelni a ciklusváltozót (vagy a feltétel sosem vált át hamisra), a program a végtelenségig fog futni, és le kell kényszerítened. Ezt hívjuk végtelen ciklusnak.

5.2. A számlálós ciklus: a for ciklus

Ha pontosan tudjuk, hogy hányszor kell valamit megismételni, vagy végig akarunk menni egy sorozat elemein, a for ciklust használjuk. A Pythonban a for ciklus kifejezetten barátságos, és leggyakrabban a range() (tartomány) függvénnyel együtt alkalmazzuk.

# Írjuk ki a számokat 0-tól 4-ig
for i in range(5):
    print(i)
Megjegyzés: A range(5) a 0-tól indul, és 5 darab számot generál, vagyis 0, 1, 2, 3, 4 lesz az értéke (az 5-öt már nem veszi bele).

A range() függvény variációi:

  • range(3, 8): A 3-tól indul és a 7-ig megy (a 8-at itt sem éri el).
  • range(1, 10, 2): 1-től 10-ig megy, de kettesével lépked (1, 3, 5, 7, 9).
# Számoljunk visszafelé 5-től 1-ig
for i in range(5, 0, -1):
    print(i)
print("Kilövés!")

5.3. Ciklusvezérlés: break és continue

Előfordulhat, hogy a ciklus futása közben olyan helyzet adódik, amikor azonnal be kell fejezni az egészet, vagy át kell ugrani az aktuális lépést. Ehhez két kulcsszót használhatunk:

  • break (Megszakítás): Teljesen kilöki a programot a ciklusból, azonnal megszakítja az ismétlést, és a ciklus utáni sorral folytatja a futást.
  • continue (Folytatás): Átugorja a ciklusmag fennmaradó részét, és azonnal a következő ismétlésre (következő körre) urik.
# Példa a break használatára: keressük meg az első számot 1 és 10 között, ami osztható 7-tel
for szam in range(1, 11):
    if szam % 7 == 0:
        print(Fion: "Megvan a találat:", szam)
        break  # Nem keresgélünk tovább, kilépünk a ciklusból

5.4. Egymásbbe ágyazott ciklusok

Ahogy az elágazásoknál, úgy a ciklusoknál is megtehetjük, hogy egy ciklus belsejébe teszünk egy másik ciklust. Ezt hívjuk egymásba ágyazott ciklusnak. Ilyenkor a belső ciklus mindenegyes köréhez a külső ciklus egyszer lép tovább.

# Egyszerű szorzótábla töredék (1-től 3-ig)
for i in range(1, 4):
    for j in range(1, 4):
        print(f"{i} * {j} = {i * j}")

💻 Feladatok

  1. Páros számok: Írj egy programot egy for ciklus segítségével, amely kiírja a képernyőre a páros számokat 1 és 20 között!
  2. Összegzés: Készíts egy programot, amely egy while ciklus segítségével kiszámolja és kiírja az egész számok összegét 1-től 10-ig ($1 + 2 + 3 + ... + 10$).
  3. Jelszóbekérő: Készíts egy programot while ciklussal, amely addig kéri a felhasználótól a jelszót (input függvénnyel), amíg az be nem írja a helyes titkos szót (pl. "titok123"). Ha eltalálja, írja ki: "Helyes, beléphetsz!".