Skok na konec trenutne iteracije

Včasih nekje sredi trenutne iteracije (zaporedja stavkov) naše zanke ugotovimo, da se s preostankom te iteracije pravzaprav nočemo ukvarjati. Takrat pride prav stavek continue, s katerim poskrbimo, da izvajanje nemudoma skoči na konec trenutne iteracije.

Izvedi Počisti



Ta program pri vsakem n preveri, če je njegova zadnja števka enaka 7; če ni, se izvede stavek continue in skoči na konec trenutne iteracije, tako da preskoči stavek print(n). Program zato izpiše le števila 7, 17, 27, ... , 97. Pri uporabi tega stavka moramo biti pazljivi, da ne preskočimo tudi česa takega, kar ne bi smeli. Poskusimo prejšnji program zapisati z zanko while namesto for:

Izvedi



					

Če ta program zaženemo, vidimo, da se ne zgodi nič uporabnega. Pri n = 0 (v prvi iteraciji zanke) se izvede stavek continue, ki preskoči preostanek telesa zanke, torej tudi stavek n = n + 1. Ker se ta ne izvede, ostane n enak 0; v naslednji iteraciji zanke se isto dogajanje ponovi in tako naprej v nedogled. Temu rečemo, da se je program »zaciklal« v neskončni zanki. Da odpravimo to napako, moramo poskrbeti, da se pred continue zagotovo izvede tisto, kar je pač potrebno pred prehodom v naslednjo iteracijo zanke – v našem primeru je to povečevanje n za 1. Še varneje pa je, če continue uporabljamo le v zankah for, pri čemer za povečevanje števca skrbi računalnik in ga s continue ne moremo preskočiti.

Oglejmo si drug primer, ki kaže, kako lahko s pomočjo stavka continue zmanjšamo potrebo po globokem gnezdenju pogojnih stavkov in tako naredimo zanko preglednejšo:

for n in range(123):
  ...
  if pogoj1:
    ...
    if pogoj2:
      ...
      if pogoj3:
        ...

Z uporabo stavka continue lahko enak učinek dosežemo takole:

for n in range(123):
  ...
  if not pogoj1: continue
  ...
  if not pogoj2: continue
  ...
  if not pogoj3: continue
  ...