Stewdent.eu
▾

Vnorené cykly

Vnorený cyklus je cyklus umiestnený vo vnútri iného cyklu. Používajú sa na prácu s dvojrozmernými dátami, tabuľkami a mriežkami.

Posledná aktualizácia: 9. februára 2026

★★★☆☆ Stupeň 3computingprogrammingcyklusvnorene2D3 min čítania

Nahlásiť chybu

Niekedy potrebuješ zopakovať činnosť, ktorá sama o sebe obsahuje opakovanie. Napríklad pri vykresľovaní šachovnice musíš pre každý riadok prejsť cez každý stĺpec. Na to slúžia vnorené cykly.

Ako funguje vnorený cyklus?

Vonkajší cyklus sa vykoná raz a počas tohto jedného opakovania sa vnútorný cyklus vykoná celý — od začiatku do konca. Potom vonkajší cyklus postúpi na ďalšie opakovanie a vnútorný cyklus začne odznova.

for riadok in range(3):        # vonkajší cyklus — 3 opakovania
    for stlpec in range(4):    # vnútorný cyklus — 4 opakovania
        print(f"({riadok},{stlpec})", end=" ")
    print()   # nový riadok po každom riadku

Výstup:

(0,0) (0,1) (0,2) (0,3)
(1,0) (1,1) (1,2) (1,3)
(2,0) (2,1) (2,2) (2,3)
Poznámka

Celkový počet vykonání tela vnútorného cyklu je súčin počtov opakovaní oboch cyklov. Tu: 3 × 4 = 12.

Príklad — násobilka

for i in range(1, 6):
    for j in range(1, 6):
        vysledok = i * j
        print(f"{vysledok:3}", end="")   # :3 zarovná číslo na 3 znaky
    print()

Výstup (časť násobilky 1–5):

  1  2  3  4  5
  2  4  6  8 10
  3  6  9 12 15
  4  8 12 16 20
  5 10 15 20 25

Príklad — vzor hviezdičiek

pocet_riadkov = 5

for riadok in range(1, pocet_riadkov + 1):
    for hviezda in range(riadok):
        print("*", end="")
    print()

Výstup:

*
**
***
****
*****
Tip

Pri vnorených cykloch pomenúvaj premenné zmysluplne (napr. riadok, stlpec namiesto i, j), keď to zodpovedá kontextu. Kód bude čitateľnejší.

Práca s dvojrozmerným zoznamom

Vnorené cykly sú prirodzené pri práci s tabuľkami (zoznamy zoznamov):

tabulka = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for riadok in tabulka:
    for bunka in riadok:
        print(bunka, end=" ")
    print()

Výstup:

1 2 3
4 5 6
7 8 9

Výkon vnorených cyklov

Vnorené cykly môžu byť pomalé pri veľkých dátach. Ak vonkajší cyklus beží N-krát a vnútorný tiež N-krát, celkový počet operácií je N². Pre N = 1 000 to znamená 1 000 000 operácií.

Upozornenie

Vnorené cykly s veľkým počtom opakovaní môžu spomaliť program. Vždy sa zamysli, či je vnorenie skutočne potrebné alebo či existuje efektívnejší spôsob riešenia.

Prerušenie vnorených cyklov

break ukončí len najbližší cyklus, nie všetky:

for i in range(3):
    for j in range(3):
        if j == 1:
            break   # ukončí len vnútorný cyklus
        print(f"({i},{j})")
# Vypíše: (0,0) (1,0) (2,0)

Cvičné príklady

Koľkokrát sa vypíše slovo 'ahoj' pri tomto kóde? for a in range(4): for b in range(3): print('ahoj')

Zobraziť odpoveď
12-krát. Vonkajší cyklus prebehne 4-krát, vnútorný 3-krát. 4 × 3 = 12 opakovaní celkovo.

Napíš vnorený cyklus, ktorý vypíše všetky dvojice (x, y) kde x je z rozsahu 1–3 a y z rozsahu 1–2.

Zobraziť odpoveď
for x in range(1, 4): for y in range(1, 3): print(f'({x},{y})') — vypíše: (1,1) (1,2) (2,1) (2,2) (3,1) (3,2)