C++ do...when silmus näidetega
Mis on do-while tsükkel?
Tsükkel do-while kordab osa C++ programmi mitu korda. Do-while tsüklis lisatakse tsükli allossa testavaldis. Silmuse keha tuleb enne testavaldist. Sellepärast peab tsükli keha käivitama ühe korra, isegi kui testavaldis on esimeses testis väär.
Millal kasutada do-while tsüklit?
Silmust do-while tuleks kasutada siis, kui iteratsioonide arv pole fikseeritud ja tsükkel peab käivituma vähemalt korra. The C++ kompilaator enne tingimuse hindamist käivitab silmuse keha. See tähendab, et silmus peab tagastama tulemuse. See kehtib isegi siis, kui testitingimus on esimesel hindamisel vale. Kuna silmuse keha on juba käivitatud, peab see tulemuse tagastama.
Süntaks
Peamine süntaks C++ tee while silmus on järgmine:
do{ //code }while(condition);
Tingimuseks on testavaldis. Silmuse täitmiseks peab see olema tõsi. { ja } tähistavad tsükli do while keha. See tuleb enne tingimust. Seega täidetakse see enne tingimust.
Kuidas do-while silmus töötab?
Vooskeemi selgitus:
- Do while tsükli algus.
- Silmuse do while keha.
- Hinnatav testiavaldis või -tingimus.
- Kui testavaldis on tõene, siis C++ kompilaator käivitas tsükli do while keha.
- Kui testavaldis on vale, siis C++ kompilaator täidab laused pärast tsükli keha.
- Avaldused, mis tulevad pärast silmuse keha.
Näiteks 1
#include <iostream> using namespace std; int main() { // Local variable int x = 1; do { cout << "X is: " << x << endl; x = x + 1; } while (x < 5); return 0; }
Väljund:
Siin on koodi ekraanipilt:
Koodi selgitus:
- Kaasa arvatud iostreami päisefail meie koodis. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
- Kaasa arvatud std-nimeruum, et kasutada selle klasse ja funktsioone ilma seda kutsumata.
- Main() funktsiooni kutsumine, mille sees tuleks lisada programmi loogika. { märgib funktsiooni main() keha algust.
- Kommentaar. The C++ kompilaator jätab selle vahele.
- Täisarvulise muutuja x deklareerimine ja väärtuse 1 määramine.
- Do-while tsükli loomine. { tähistab tsükli keha algust.
- Muutuja x väärtuse printimiseks konsooli muu teksti kõrvale. Endl on a C++ märksõna tähenduses lõpprida.
- x väärtuse suurendamine 1 võrra pärast iga iteratsiooni.
- Silmuse korpuse ots. Tsükli keha lõppu on lisatud testavaldis. See testib, kas x väärtus on väiksem kui 5.
- Funktsioon main() peaks tagastama väärtuse, kui programm töötab hästi.
- Funktsiooni main() keha lõpp.
Näiteks 2
#include <iostream> using namespace std; int main() { int num, sum = 0; do { cout << "Enter a number: "; cin >> num; sum += num; } while (num != 0); cout << "Sum is " << sum; return 0; }
Väljund:
Siin on koodi ekraanipilt:
Koodi selgitus:
- Kaasa arvatud iostreami päisefail meie koodis. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
- Kaasa arvatud std-nimeruum, et kasutada selle klasse ja funktsioone ilma seda kutsumata.
- Main() funktsiooni kutsumine, mille sees tuleks lisada programmi loogika.
- { märgib funktsiooni main() keha algust.
- Kahe täisarvulise muutuja, num ja summa, deklareerimine. Muutuv summa on lähtestatud 0-ks.
- Do-while tsükli loomine. { tähistab tsükli keha algust.
- Konsoolile teksti "Sisesta number:" printimine.
- Kasutaja sisendi lugemine konsoolist ja väärtuse salvestamine muutujasse num. cin (konsooli sisend) on funktsioon, mis loeb kasutaja sisendit.
- Num väärtuse lisamine summa väärtusele ja tulemuse salvestamine muutuvas summas.
- } tähistab tsükli keha lõppu. Tsükli keha lõppu on lisatud testavaldis. See testib, kas kasutaja sisestatud väärtus ei ole 0. != ei ole võrdne operaatoriga. Kui kasutaja sisestab 0, peaks tsükkel lõppema.
- Muutuva summa väärtuse trükkimine konsoolil koos muu tekstiga.
- Funktsioon main() peaks tagastama väärtuse, kui programm töötab hästi.
- Funktsiooni main() keha lõpp.
Pesastatud Do While Loop
In C++, on meil võimalik luua üks tee-samal ajal tsükkel teise do-whole tsükli sees. Selle tulemuseks on pesastatud do-while tsükkel.
Süntaks
do{ statement(s) do{ statement(s) }while(condition); statement(s) }while(condition);
Esimene do-lause tähistab välise do-while-tsükli do-osa.
Teine do-lause tähistab sisemise do-while tsükli do-osa.
Esimene while-lause tähistab sisemise tsükli testitingimust.
Teine while-lause tähistab välimise tsükli testitingimust.
Kuidas Nested Do While Loop töötab
Pesastatud do while tsükkel töötab järgmiselt:
Samm 1: Initsialiseerimine viiakse läbi kõigepealt ja üks kord.
Samm 2: Avaldused (do) täidetakse üks kord.
Samm 3: Testavaldis on hindamine voo juhtimise abil.
Samm 4: Kui see on tõene, käivitatakse sisemine tsükkel.
Samm 5: Värskendusavaldus(ed) on uuendatud.
Samm 6: Protsessi käitatakse korduvalt, kuni testavaldis muutub valeks.
Samm 7: Kui testavaldis muutub vääraks, väljutakse sisemisest tsüklist ja juhtimine hüppab välimisele tsüklile.
Samm 8: Katse seisukorda hinnatakse uuesti.
Samm 9: Tõene korral täidetakse avaldus(ed), et tagastada vale.
Samm 10: Silmuspeatuste ja juhthüpete täitmine lausetele tsükli järel.
Näide
#include <iostream> using namespace std; int main() { int a = 1; do { int b = 1; do { cout << a << "\n"; b++; } while (b <= 3); a++; } while (a <= 3); }
Väljund:
Siin on koodi ekraanipilt:
Koodi selgitus:
- Kaasa arvatud iostreami päisefail meie koodis. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
- Kaasa arvatud std-nimeruum, et kasutada selle klasse ja funktsioone ilma seda kutsumata.
- Main() funktsiooni kutsumine, mille sees tuleks lisada programmi loogika. { märgib funktsiooni main() keha algust.
- Täisarvulise muutuja a deklareerimine ja väärtuse 1 määramine.
- Välise do-while tsükli loomine. { tähistab välisahela keha algust.
- Täisarvulise muutuja b deklareerimine ja väärtuse 1 määramine.
- Sisemise do-while tsükli loomine. { tähistab sisemise tsükli keha algust.
- Muutuja a väärtuse printimiseks konsoolil. "\n" on uus rea märk, mis viib hiirekursori järgmisele reale.
- B väärtuse suurendamine 1 võrra pärast iga iteratsiooni.
- Sisemise silmuse korpuse ots. Tsükli keha lõppu on lisatud testavaldis. See kontrollib, kas b väärtus on väiksem või võrdne 5-ga.
- A väärtuse suurendamine 1 võrra pärast iga iteratsiooni.
- Välissilmuse korpuse ots. Tsükli keha lõppu on lisatud testavaldis. See testib, kas a väärtus on väiksem kui 3 või sellega võrdne.
- Funktsiooni main() keha lõpp.
kokkuvõte
- Do-while tsükkel käivitab koodiosa mitu korda.
- Seda tuleks kasutada siis, kui iteratsioonide arv pole fikseeritud.
- Do-whi-tsüklis on tsükli keha enne testavaldist.
- Silmuse keha käivitatakse vähemalt korra, isegi kui testavaldis muutub vääraks.
- Seda tsüklit tuleks kasutada siis, kui iteratsioonide arv pole fikseeritud.
- Do while tsükkel võib käitada suvalise arvu kordi, eeldusel, et tingimus on tõene.
- Tingimust hinnatakse üks kord pärast iga iteratsiooni.
- Tingimuse hindamise tulemus määrab toimingu, mida tuleb võtta.
- Kui tingimus on tõene, teostas silmus keha.
- Silmuse täitmine peatub kohe, kui tingimus hinnatakse vääraks.
- Kuna do while tsükli keha on juba täidetud, peab see tagastama tulemuse.