Käesolevas artiklis räägime erinevustest „silma-” ja „lõputu” silmuse vahel.
Võrdluskaart
Võrdluse alus | samal ajal | teha |
---|---|---|
Üldine vorm | samas (tingimus) { avaldused; // silmuse keha } | tehke { . avaldused; // silmuse keha. . } samal ajal (tingimus); |
Kontrollimise tingimus | Silmusahelas ilmub kontrollsüsteem silma alguses. | „Do-time” -süsteemis ilmub kontrolltingimus silmusetapi lõpus. |
Iteratsioonid | Kordumisi ei esine, kui esimese iteratsiooni seisukord on vale. | Iteratsioon toimub vähemalt üks kord, isegi kui tingimus on esimesel iteratsioonil vale. |
Loopi määratlus
Samal ajal on silmus C + + ja Java kõige olulisem silmus. Samaaegse ahela töö on sarnane nii C ++ kui ka Java puhul. Sõnumi üldine vorm on:
samal ajal (tingimus) {avaldused; // silmuse keha}
Samaaegne silmus kontrollib kõigepealt seisundit ja kui see tingimus on tõsi, kordab see silmus, kuni tingimus osutub valeks. Olukord silmuses võib olla mis tahes loogiline väljend. Kui väljend väljendab mistahes nulliväärtust, siis on tingimus „tõene” ja kui väljend väljendab nullväärtust, muutub tingimus „valeks”. Kui tingimus muutub tõeks, siis kordub silmus ise ja kui tingimus muutub valeks, siis läheb kontroll edasi koodi järgmise rea juurde, millele järgneb silmus.
Silmade väited või keha võivad olla kas tühi avaldus või üks või mitu avaldust.
Arutagem mõnda aega silma töötamist. Allolevas näites prinditakse kood 1-10.
// näide on Java. klass, samal ajal kui {public static void main (args []) {int n = 0; samal ajal (n <= 10) {n ++; system.out.println ("n =" + n); }}} // väljund n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Siin on 'n' algväärtus 0, mis muudab oleku silmuseelseks. Seejärel siseneb juhtseade siis, kui silmuse keha muutub ja n väärtust suurendatakse vastavalt esimesele väitele, mis jääb keha kehasse. Siis trükitakse 'n' väärtus ja jälle läheb kontroll tagasi hetkeseisu olekusse, nüüd 'n' väärtus on 1, mis jällegi vastab olukorrale ja silmuse keha täidetakse uuesti.
See jätkub, kuni tingimus on tõene, niipea kui tingimus muutub valeks, kui silmus on lõpetatud. Nagu silmus, kontrollib ka silmus esmalt olekut ja seejärel teostab silmusekeha.
Do-time Loopi määratlus
Kui samal ajal silmus, kui juhtimistingimus muutub ebaõigeks ainult esimesel iteratsioonil, siis ei teostata samal ajal silmuse keha. Kuid silmus on mõnevõrra erinev kui silmus. Sooritusahel teostab silmusekeha vähemalt üks kord, isegi kui tingimus on esimesel katsel vale.
Tööaja üldine vorm on järgmine.
tehke {. avaldused // silmuse keha. . } samal ajal (tingimus);
Ühe tsükli ajal esineb silmuse keha enne juhtimistingimust ja tingimuslik avaldus on silmuse allosas. Nagu ka silmus, võib siin ka silmusekeha olla tühi, kuna nii C ++ kui ka Java võimaldavad null-avaldusi, või võib olla ainult üks avaldus või avalduste plokk. Tingimuseks on ka loogiline väljendus, mis kehtib kõigi nulliväärtuste puhul.
Ühe tsükli tsüklis jõuab juht kõigepealt väite juurde, mis asub silmusena. Kehas olevad avaldused täidetakse kõigepealt ja seejärel jõuab kontrollsüsteem silma seisundi poole. Tingimus on kinnitatud ja kui see on tõsi, siis silmus iteriseeritakse uuesti ja kui tingimus on vale, siis jätkub kontroll järgmisele reale vahetult pärast silmus.
Mõelgem seda ülaltoodud näite rakendamisega.
// näide on Java. klass, samal ajal kui {public static void main (args []) {int n = 1; do {system.out.println ("n =" + n); n ++; } kui (n <10)}} // väljund n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Siin on väärtus n = 1, mis kontrolli jätkub silmusekeha juurde, trükitakse 'n' väärtus ja seejärel suurendatakse selle väärtust. Siis jätkub juht uuesti do-o-tsükli olekusse; tingimus on kontrollitud, mis osutub tõeks n = 1 jaoks, nii et silmus on korduv ja jätkub, kuni tingimus muutub valeks.
Peamised erinevused ajal ja do-ajal Loop
- Samaaegne silmus kontrollib olekut silmuse alguses ja kui tingimus on täidetud, siis silmus on täidetud. Do-time-silmuses kontrollitakse seisundit pärast kõikide silmusekihi avalduste täitmist.
- Kui mõnda aega silmuse seisund on vale, siis ei täideta ühtegi silmusiseset avaldust ja kui „do-time” -tsükli tingimus on vale, siis teostatakse ka silmusekeha vähemalt üks kord, kui tingimus on testitud.
Järeldus:
Mõlemad ja do-time silmused on iteratsiooni avaldus, kui me tahame seda kõigepealt kontrollida, tuleb see kontrollida ja seejärel peavad silmus olevad avaldused täitma, seejärel kasutatakse silmusahelat. Kui soovite testida lõpetamistingimusi silmusetapi lõpus, siis kasutatakse silmusetaili.