Fájlok írása Pytonban!
Elkészült a Python nyelv Szövegfájlok írása tananyagunk! Jó tanulást, jó gyakorlást!

<info9>

Ciklusok megszakítása: break, continue

Érdekel a C#?

A tavaszi C# alapozó bootcampünk tananyagait továbbra is megvásárolhatod! Bár az élő előadásokon már túl vagyunk, az összes előadás anyaga továbbra is visszanézhető!

Irány a bootcamp

Annak meghatározására, hogy egy ciklus pontosan hány alkalommal / meddig kerüljön megismétlésre, alapvetően a ciklus feltételét használjuk. Vannak azonban olyan speciális esetek, amikor valamilyen ok miatt mégis szeretnénk egy ciklust megszakítani, annak ellenére, hogy a feltétel egyébként továbbra is igaz lenne. Erre az esetre hasznos kulcsszó a break, amely lehetővé teszi a ciklusmag belsejéből a ciklus megszakítását.

Érdemes megjegyezni, hogy a break kulcsszót sosem muszáj alkalmazni, az minden esetben kiváltható a ciklus átalakításával. Ennek ellenére azonban sok esetben átláthatóbb maradhat egy-egy kódrészletünk, vagy megspórolhatunk némi extra kódbűvészkedést, ha egyszerűen használjuk amikor szükséges. Nézzünk egy gyakorlati példát a break használatára! Az alábbi kódrészlet bekér 5 darab osztályzatot a felhasználótól. Amennyiben a felhasználó nem egy érvényes jegyet ír be, úgy a program hibaüzenetet dob, és leállítja a ciklust:

for i in range(5):
    jegy = int(input("Adj meg egy osztályzatot: "))

    if jegy<1 or jegy>5:
        print("Hibás adatot adtál meg!")
        break

Az egyik legjellemzőbb felhasználása a break kulcsszónak a van-e legalább egy olyan, ami... típusú feltételek vizsgálata listákon. Ha azt szeretnénk eldönteni, hogy a szamok listának van-e legalább egy olyan eleme, ami 10-nél nagyobb, akkor onnantól, hogy találtunk legalább egy ilyet, tovább már nem érdemes vizsgálódni, hisz akkor már biztos, hogy a feltétel teljesül. Ha viszont nem találunk egyet sem, akkor muszájak vagyunk végigolvasni a teljes listát, hogy megbizonyosodjunk róla, hogy nem bújt-e meg esetleg az utolsó helyen mégis egy nagyobb érték.

Ez esetben tehát használhatjuk a break-et arra, hogy megállítsuk a ciklust abban az esetben, ha a válaszban már biztosak vagyunk. Ez persze nem szükséges feltétlenül, viszont segíthet abban, hogy a kód "ne dolgozzon feleslegesen", így a programunk gyorsabb és hatékonyabb lesz!

szamok = [3, 4, 9, 12, 5, 1]

van = False
for elem in szamok:
    if elem > 10:
        van = True
        break

print("Van ilyen szám" if van else "Nincs ilyen szám")

Ciklusmag megszakítása: a continue kulcsszó

Előfordul azonban olyan eshetőség is, hogy nem szeretnénk az egész ciklust leállítani - egyszerűen csak ugrani szeretnénk a következő iterációra (ha van még), mert rájöttünk, hogy ebben a körben már felesleges tovább dolgoznunk. Példaként nézzünk egy ciklust, amely összeadja az adatok listában található számokat, de kihagy minden olyan elemet, ami nem egész szám adattípusú:

adatok = [3, 8, "alma", 5, 2, "körte", 4]

osszeg = 0
for elem in adatok:
    if type(elem) != int:
        continue
    osszeg += elem

Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9 LineFlame fejlesztőeszközével!

Példa megnyitása