Gnezdenje zank

V telesu zanke se lahko pojavijo poljubni stavki, tudi druge zanke. Temu pravimo, da je ena zanka (notranja) »vgnezdena« v drugi (zunanji).

Primer

Kako bi se lotili te naloge? Obdelati moramo števila od 1 do 100, torej si je koristno pomagati z zanko. Število 1 lahko preskočimo, saj že po definiciji vemo, da ni praštevilo. Zametek našega programa bi bil torej lahko takšen:


Naloga pravi, da je n praštevilo, če je deljivo le z 1 in samim sabo, ne pa s katerim od števil od 2 do n-1. Torej je koristno, če gremo v zanki po vseh teh številih in za vsako od njih preverimo, če deli n. Če najdemo takega delitelja, potem vemo, da n ni praštevilo, in ga ne smemo izpisati. To si lahko zapomnimo v spremenljivki, recimo ji jePrastevilo.

...   Python  

    

Predčasni izhod iz zanke

Včasih si želimo zanko predčasno prekiniti. V našem programu za izpis praštevil smo imeli notranjo zanko, ki za vsa števila od 2 do n-1 preveri, če delijo n:


Čim pri nekem d-ju opazimo, da deli n, postavimo jePrastevilo na false in ta spremenljivka odtlej potem tudi ostane false. Tako je tudi prav, saj zdaj vemo, da je n sestavljeno število, ne pa praštevilo. Toda potem je odveč, da z zanko nadaljujemo in pregledujemo še vse preostale d-je. Bolje bi bilo zanko takoj prekiniti in tako prihraniti nekaj časa.

V takih primerih pride prav stavek break (angleška različica besede zapusti), ki izvajanje zanke, v kateri ga uporabimo, nemudoma prekine (računalnik niti ne dokonča trenutne iteracije zanke). Če imamo več gnezdenih zank, prekine zapusti le skrajno notranjo zanko, v kateri se nahaja. Ko opazimo, da d deli n, bi se torej izvedel stavek zapusti, ki prekine notranjo zanko (po d). Izvajanje se nadaljuje za to zanko, s stavkom če jePrastevilo.

...   Python