Enne silmuse ja loo vahelise erinevuse hüppamist peame kõigepealt mõistma silmuse loomise mõistet. Kui olete programmeerimises, siis teate silmustest juba. Püüame seda lühidalt hoida. Peaaegu kõigil programmeerimiskeeltel on kontseptsioon nimega loop, mis aitab ühe koodiploki käitamisel mitu korda. Programmeerimisel peame sageli avaldusi mitu korda täitma, sel juhul saab kasutada silmust. Silmused on eriti käepärased olukordades, nagu itereerimine andmestruktuuride kaudu või suurte andmekogude kaudu liikumine rämpsandmete filtreerimiseks.
Kui kasutate programmis silmust, võite kirjutada ühe juhiskomplekti, mis töötab mitme andmekogumi korral. See hõlmab programmi rühma juhiste kordamist kas määratud arv kordi või kuni mõni loogiline tingimus on täidetud. Enamasti teame, mitu korda silmust tuleb korrata, mõnikord aga pole seda teada ja silmust korratakse seni, kuni seisund on tõene. For ja Kuigi on C programmeerimisel kasutatavad üldised ahela juhtimislaused koos Do-While ahelaga. Vaatleme kahte sisenemisjuhtimisega ahelat üksikasjalikult, et mõista nende kahe erinevust.
Loop on sisenemiskontrolli avaldus, mida kasutatakse teatud avalduste korduvaks täitmiseks koos avalduse kindla väärtuse korduva testimisega, kas see on tõene või vale. For silmust kasutatakse kindlate silmuste jaoks, kui iteratsioonide arv on teada. Kindlad aasad on need, mis aheldavad teatud arvu kordi. Sest silmuseid kasutatakse ainult koodi pisut lühemaks muutmiseks, aga ka teiste C-programmeerijate hõlpsamaks lugemiseks. See tundub asjakohane, kui lähtestamine ja juurdekasv on loogiliselt seotud ja on üksikud väited. For avalduses kasutatakse silmuskontrolli muutujat, pakkudes teile ühes kompaktses avalduses automaatselt kolme toimingut: lähtestamine, hindamine ja suurendamine.
Erinevalt silmusest kasutatakse silmust tähtajatute silmuste jaoks, kus iteratsioonide arv pole teada. See tähendab, et ahel jätkab lõpmatu arv kordi täitmist, kuni ja kui tingimus pole täidetud. See on lihtsaim silmusekontrolli avaldus, mida kasutatakse C programmeerimisel tähtajatute silmuste täitmiseks. See täidab sihtklahvi korduvalt, kuni antud tingimus on tõene. See on kõige elementaarsem silmus programmeerimisel, kus on ainult üks juhtelement, mis töötab seni, kuni see tingimus on täidetud. Niipea, kui tingimus muutub valeks, peatab see ahela täitmise ja edastab juhteavalduse kohe samasse ahelasse järgnevale avaldusele. See on asjakohane, kuna te ei tea täpselt, mitu korda kasutaja soovib silmust korrata.
- Kuigi nii sisenemise kontrollsilmuseid kui ka nende ajal kasutatakse koodiploki (de) korduvat täitmist teatud arv kordi, erinevad nad funktsionaalsuse poolest. For silmus on mälukasutuse ja kiiruse osas üsna sarnane aja silmusega. Kuid for silmus on eelistatav, kui teate täpselt, mitu korda silmust tuleb korrata. Vastupidi, kuigi silmus on sobiv, kui täpset iteratsioonide arvu pole teada, see tähendab, et te ei tea, mitu korda silmust tuleb korrata.
- „Loopi” süntaks on:
jaoks (avaldis 1; avaldis 2; avaldis 3)
// avaldused ... .
Siin väljend 1 = initsialiseerimisavaldus; Lause 2 = silmuse tingimus; ja avaldis 3 = värskenduse avaldus.
Süntaks sõna „while loop“ jaoks on „
kuigi (tingimus)
// avaldus (ed) ...
Siin võib avaldus olla üksik või lausete plokk. Loop jätkab täitmist, kuni tingimus on tõene, ja lõpeb, kui tingimus on vale.
- For silmust kasutatakse siis, kui kasutaja soovib midagi kindla aja jooksul teha. See on sisenemise kontrolli avaldus, mida kasutatakse teatud avalduste korduvaks täitmiseks. See on eelistatav, kui teame täpselt, mitu korda silmust korratakse. Teisalt, samas kui silmust kasutatakse tähtajatute silmuste jaoks, see tähendab, et meil pole aimugi, mitu korda silmust korratakse. Samal ajal kui tsükkel töötab lõpmatu arv kordi, kuni tingimus on täidetud.
- Loopi jaoks on loendusmuutuja, mis võimaldab arendajal täpsustada, mitu korda silmus täidetakse. C-programmeerimisel võivad silmuste vastassuunalised muutujad deklareerida ise. Vastupidi, puudub sisseehitatud silmuskontrolli muutuja, millel oleks mingi ajaline silmus. Selle asemel saate määrata mis tahes tingimuse, mille väärtus on kas tõene või vale. Kui ahela jaoks pole tingimust täpsustatud, itreerib ahel lõpmatu arv kordi, samas kui ahela ajal näitab see kompileerimisviga.
Ehkki mõlemad sisenemise kontrollsilmused on üsna sarnased ja teenivad põhimõtteliselt sama eesmärki, on for for silmuse anatoomia pisut teistsugune kui mõne aja silmus. Mõnel ajal pole silmusel sisseehitatud ahela juhtmuutujat, nagu see on for silmuse jaoks; selle asemel tuleb täpsustada avaldis, mis sarnaneb silmuse ahelas määratletud testi avaldisega. Mõne aja silmuse korral täpsustatakse aga avaldist, et hinnata tingimust õigeks või valeks. Erinevalt silmusest kasutatakse silmust, kui meil pole aimugi, mitu korda silmus täidetakse.