Pesastatud silmus on loogiline struktuur, mida kasutatakse arvuti programmeerimisel ja kodeerimisel. Seda iseloomustab kaks või enam korduvat väidet, mis on paigutatud “pesastatud” kujul, mis tähendab, et üks “silmus” või korduv käsk asub teise kehas. See on tõhus ja enamikul juhtudel suhteliselt lihtne viis, kuidas kodeerijad ja programmeerijad saavad omavahel seotud käskude ja signaalide tagasilülituste kaudu üksteisele tuginevaid sündmusi ja toiminguid esile kutsuda. Pesastatud silmused on enamiku arvutiprogrammide tavaline osa, kuid neid võib leida ka paljudes olukordades, kus tehnoloogia ristub teatud tüüpi teabe esitamisega.
Miks Seda kasutatakse
Looping on programmeerimisel võimas konstruktsioon, kuna see võimaldab kiiret sortimist või suure andmemahu tõhusat sisestamist. Probleemide lahendamine näiteks ärimaailmas või tootmises hõlmab sageli toimingu korduvat kordamist sadade, tuhandete või isegi miljonite üksikute andmetega. Selle tulemusena kasutatakse silmuseid sageli igasugustes arvutiprogrammides igat tüüpi tööstusharudes.
Silmuste vaheline seos
Välissilmus ja kõik sisemised ahelad on üksteisega olulisel määral seotud. Need mitte ainult ei ühenda, vaid võtavad ka üksteiselt signaale ning sõltuvad üksteisest erinevate signaalide tõlkimisel ja täitmisel ning digitaalsete ülesannete täitmisel. Spetsiifikad kipuvad olenevalt rakendusest varieeruma, kuid peaaegu pidev suhtlus on peaaegu alati ette antud.
Enamikul juhtudel põhjustab välimine silmus sisemise ahela käivitamise. Seejärel kordub sisemine tsükkel nii mitu korda, kui on koodis või käsumaterjalides määratud. Kui sisemine tsükkel on lõpule jõudnud, käivitatakse välimine tsükkel selle teise iteratsiooni jaoks, käivitades uuesti sisemise tsükli ja nii edasi, kuni välisahela nõuded on täidetud.
Paljud arvutiprogrammeerijad töötavad struktureeritud päringukeeles (SQL) ja nendel juhtudel on pesastamine eriti oluline. See pakub sisuliselt vahendi, mille kaudu inimene saab kiiresti ja tõhusalt otsida andmeid kahest lingitud tabelist. Välist tsüklit kasutatakse esimese tabeli lugemiseks, üks rida andmeid korraga; seejärel edastatakse teisest tabelist otsimiseks vajalikud andmed sisetsüklisse, mis loeb teist tabelit. Selle tulemusena saab silmus tõhusalt töödelda kahte lingitud tabelit. Enamasti juhtub see kõik peaaegu silmapilkselt.
Erinevad tasemed
Kõige elementaarsem tsükkel koosneb vaid kahest tasemest, kuigi asjad võivad ja muutuvad sageli palju keerulisemaks. Pesastada saab rohkem kui kaks silmust ja need võivad minna nii sügavale, kui konkreetse töö tegemiseks vaja läheb. Paljude inimeste jaoks on kontseptsiooni lihtne visualiseerida analoogia põhjal auto läbisõidumõõdikuga. Läbisõidumõõdiku kõige vasakpoolsema numbri kujutamine kõige välimise ahelana on inimeste jaoks parim viis alustamiseks. sealt edasi võib igat järjestikust numbrit pidada teiseks tsükliks, kumbki teine teises, kuni üks jõuab kõige parempoolsema numbrini, mis tähistab sisemist pesastatud tsüklit. Enamikul juhtudel, mida rohkem on pesastusi, seda keerulisem on aluseks olev kood või käsk.
Silmuste seadistamine
Täpne silmusprotsess ja esialgne struktureerimine on programmeerimiskeelte vahel erinev. Näiteks SQL-is võib programmeerija need struktuurid skriptida ja käivitada kas serveri pesastatud tsüklina, mida kutsutakse kaugjuhtimisega, või kliendimasinas, mis käivitatakse kohapeal. Nende võimsate struktuuride tõhusaks kasutamiseks on vaja arvesse võtta nii programmi kasutatavat keelt kui ka andmebaasi või muud taustaprogrammi, millelt andmeid päritakse.