C++ do...when silmukka esimerkkien kanssa
Mikä on do-while -silmukka?
Do-while -silmukka toistaa osan C++ ohjelma useita kertoja. Do-while-silmukassa testilauseke lisätään silmukan alaosaan. Silmukan runko tulee ennen testilauseketta. Tästä syystä silmukan rungon on suoritettava kerran, vaikka testilausekkeen arvo olisi epätosi ensimmäisessä testissä.
Milloin do-while-silmukkaa kannattaa käyttää?
Do-while-silmukkaa tulisi käyttää, kun iteraatioiden lukumäärä ei ole kiinteä, ja silmukan on suoritettava vähintään kerran. The C++ kääntäjä suorittaa silmukan rungon ensin ennen ehdon arviointia. Tämä tarkoittaa, että silmukan on palautettava tulos. Näin on myös silloin, kun testiehto evaluoituu epätosi ensimmäisellä arvioinnilla. Koska silmukan runko on jo suoritettu, sen on palautettava tulos.
Syntaksi
Kohteen perussyntaksi C++ tee while-silmukka on seuraava:
do{ //code }while(condition);
Ehto on testilauseke. Sen on oltava totta, jotta silmukan suorittaminen onnistuu. { ja } merkitsevät do while -silmukan rungon. Se tulee ennen ehtoa. Siksi se suoritetaan ennen ehtoa.
Miten do-while -silmukka toimii?
Vuokaavion selitys:
- Do while -silmukan alku.
- Do while -silmukan runko.
- Arvioitava testilauseke tai ehto.
- Jos testilauseke on tosi, C++ kääntäjä suoritti do while -silmukan rungon.
- Jos testilauseke on epätosi, C++ kääntäjä suorittaa lausekkeet silmukan rungon jälkeen.
- Lausekkeet, jotka tulevat silmukan rungon jälkeen.
Esimerkki 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; }
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisältää iostream-otsikkotiedoston koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
- Mukaan lukien std-nimiavaruus, jotta sen luokkia ja toimintoja voidaan käyttää kutsumatta sitä.
- Main()-funktion kutsuminen, jonka sisään ohjelman logiikka pitäisi lisätä. { merkitsee main()-funktion rungon alkua.
- Kommentti. The C++ kääntäjä ohittaa tämän.
- Ilmoitetaan kokonaislukumuuttuja x ja annetaan sille arvo 1.
- Tee-while-silmukan luominen. { merkitsee silmukan rungon alkua.
- Tulostaa muuttujan x arvon muun konsolin tekstin rinnalle. Loppu on a C++ avainsana tarkoittaa loppuriviä.
- Kasvataan x:n arvoa yhdellä jokaisen iteraation jälkeen.
- Silmukan rungon pää. Testilauseke on lisätty silmukan rungon loppuun. Se testaa, onko x:n arvo pienempi kuin 5.
- Main()-funktion pitäisi palauttaa arvo, jos ohjelma toimii hyvin.
- Main()-funktion rungon loppu.
Esimerkki 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; }
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisältää iostream-otsikkotiedoston koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
- Mukaan lukien std-nimiavaruus, jotta sen luokkia ja toimintoja voidaan käyttää kutsumatta sitä.
- Main()-funktion kutsuminen, jonka sisään ohjelman logiikka pitäisi lisätä.
- { merkitsee main()-funktion rungon alkua.
- Kahden kokonaislukumuuttujan, num ja sum, ilmoittaminen. Muuttuva summa on alustettu nollaan.
- Tee-while-silmukan luominen. { merkitsee silmukan rungon alkua.
- Tekstin "Syötä numero:" tulostaminen konsoliin.
- Lukee käyttäjän syötteen konsolista ja tallentaa arvon muuttujaan num. cin (konsolisyöttö) on toiminto, joka lukee käyttäjän syötteitä.
- Num-arvon lisääminen summan arvoon ja tuloksen tallentaminen muuttuvaan summaan.
- } merkitsee silmukan rungon loppua. Testilauseke on lisätty silmukan rungon loppuun. Se testaa, onko käyttäjän syöttämä arvo varmistaakseen, että se ei ole 0. != ei ole sama kuin operaattori. Jos käyttäjä syöttää 0:n, silmukan tulee päättyä.
- Muuttuvan summan arvon tulostaminen konsoliin muun tekstin rinnalle.
- Main()-funktion pitäisi palauttaa arvo, jos ohjelma toimii hyvin.
- Main()-funktion rungon loppu.
Sisäkkäinen Do While Loop
In C++, voimme luoda yhden tee-while-silmukan toisen tee-koko-silmukan sisään. Tämä johtaa sisäkkäiseen do-while-silmukkaan.
Syntaksi
do{ statement(s) do{ statement(s) }while(condition); statement(s) }while(condition);
Ensimmäinen do-lause tarkoittaa ulomman do-while-silmukan do-osaa.
Toinen do-lause tarkoittaa sisemmän do-while-silmukan do-osaa.
Ensimmäinen while-lause tarkoittaa sisäisen silmukan testiehtoa.
Toinen while-lause ilmaisee ulomman silmukan testiehtoa.
Kuinka Nested Do While Loop toimii
Sisäkkäinen do while -silmukka toimii seuraavasti:
Vaihe 1: Alustus suoritetaan ensin ja kerran.
Vaihe 2: Lausekkeet (do) suoritetaan kerran.
Vaihe 3: Testilauseke on virtauksen ohjauksen arviointi.
Vaihe 4: Jos totta, sisäsilmukka suoritetaan.
Vaihe 5: Päivityslausunto(t) päivitetään.
Vaihe 6: Prosessi suoritetaan toistuvasti, kunnes testilausekkeesta tulee epätosi.
Vaihe 7: Kun testilausekkeesta tulee epätosi, sisempi silmukka poistuu ja ohjaus hyppää ulompaan silmukkaan.
Vaihe 8: Testitilanne arvioidaan uudelleen.
Vaihe 9: Jos tosi, lause(t) suoritetaan palauttamaan epätosi.
Vaihe 10: Silmukan pysäytysten ja ohjaushyppyjen suorittaminen lauseisiin silmukan jälkeen.
esimerkki
#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); }
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisältää iostream-otsikkotiedoston koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
- Mukaan lukien std-nimiavaruus, jotta sen luokkia ja toimintoja voidaan käyttää kutsumatta sitä.
- Main()-funktion kutsuminen, jonka sisään ohjelman logiikka pitäisi lisätä. { merkitsee main()-funktion rungon alkua.
- Ilmoitetaan kokonaislukumuuttuja a ja annetaan sille arvo 1.
- Ulkoisen do-while-silmukan luominen. { merkitsee ulomman silmukan rungon alkua.
- Ilmoitetaan kokonaislukumuuttuja b ja annetaan sille arvo 1.
- Sisäisen do-while-silmukan luominen. { merkitsee sisemmän silmukan rungon alkua.
- Tulostaa muuttujan a arvo konsoliin. "\n" on uusi rivimerkki, joka siirtää hiiren osoittimen seuraavalle riville.
- Kasvataan b:n arvoa 1:llä jokaisen iteraation jälkeen.
- Sisäsilmukan rungon pää. Testilauseke on lisätty silmukan rungon loppuun. Se testaa, onko b:n arvo pienempi tai yhtä suuri kuin 5.
- A:n arvo kasvaa yhdellä jokaisen iteraation jälkeen.
- Ulomman silmukan rungon pää. Testilauseke on lisätty silmukan rungon loppuun. Se testaa, onko a:n arvo pienempi tai yhtä suuri kuin 3.
- Main()-funktion rungon loppu.
Yhteenveto
- Do-while-silmukka suorittaa koodin osan useita kertoja.
- Sitä tulisi käyttää, kun iteraatioiden määrä ei ole kiinteä.
- Do-wh-silmukassa silmukan runko tulee ennen testilauseketta.
- Silmukan runko suoritetaan vähintään kerran, vaikka testilausekkeesta tulee epätosi.
- Tätä silmukkaa tulee käyttää, kun iteraatioiden määrä ei ole kiinteä.
- Do while -silmukka voi suorittaa kuinka monta kertaa tahansa, jos ehto on tosi.
- Tilanne arvioidaan kerran jokaisen iteroinnin jälkeen.
- Edellytyksen arvioinnin tulos määrää, mihin toimiin on ryhdyttävä.
- Jos ehto on tosi, silmukka suoritti rungon.
- Silmukan suorittaminen pysähtyy välittömästi, kun ehto evaluoituu epätosi.
- Koska do while -silmukan runko on jo suoritettu, sen on palautettava tulos.