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?

Do-While Loop
C++ Tee samalla vuokaavio

Vuokaavion selitys:

  1. Do while -silmukan alku.
  2. Do while -silmukan runko.
  3. Arvioitava testilauseke tai ehto.
  4. Jos testilauseke on tosi, C++ kรครคntรคjรค suoritti do while -silmukan rungon.
  5. Jos testilauseke on epรคtosi, C++ kรครคntรคjรค suorittaa lausekkeet silmukan rungon jรคlkeen.
  6. 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รถ:

Do-While Loop

Tรคssรค on kuvakaappaus koodista:

Do-While Loop

Code Selitys:

  1. Sisรคltรครค iostream-otsikkotiedoston koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Mukaan lukien std-nimiavaruus, jotta sen luokkia ja toimintoja voidaan kรคyttรครค kutsumatta sitรค.
  3. Main()-funktion kutsuminen, jonka sisรครคn ohjelman logiikka pitรคisi lisรคtรค. { merkitsee main()-funktion rungon alkua.
  4. Kommentti. The C++ kรครคntรคjรค ohittaa tรคmรคn.
  5. Ilmoitetaan kokonaislukumuuttuja x ja annetaan sille arvo 1.
  6. Tee-while-silmukan luominen. { merkitsee silmukan rungon alkua.
  7. Tulostaa muuttujan x arvon muun konsolin tekstin rinnalle. Loppu on a C++ avainsana tarkoittaa loppuriviรค.
  8. Kasvataan x:n arvoa yhdellรค jokaisen iteraation jรคlkeen.
  9. Silmukan rungon pรครค. Testilauseke on lisรคtty silmukan rungon loppuun. Se testaa, onko x:n arvo pienempi kuin 5.
  10. Main()-funktion pitรคisi palauttaa arvo, jos ohjelma toimii hyvin.
  11. 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รถ:

Do-While Loop

Tรคssรค on kuvakaappaus koodista:

Do-While Loop

Code Selitys:

  1. Sisรคltรครค iostream-otsikkotiedoston koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Mukaan lukien std-nimiavaruus, jotta sen luokkia ja toimintoja voidaan kรคyttรครค kutsumatta sitรค.
  3. Main()-funktion kutsuminen, jonka sisรครคn ohjelman logiikka pitรคisi lisรคtรค.
  4. { merkitsee main()-funktion rungon alkua.
  5. Kahden kokonaislukumuuttujan, num ja sum, ilmoittaminen. Muuttuva summa on alustettu nollaan.
  6. Tee-while-silmukan luominen. { merkitsee silmukan rungon alkua.
  7. Tekstin "Syรถtรค numero:" tulostaminen konsoliin.
  8. 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รค.
  9. Num-arvon lisรครคminen summan arvoon ja tuloksen tallentaminen muuttuvaan summaan.
  10. } 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รค.
  11. Muuttuvan summan arvon tulostaminen konsoliin muun tekstin rinnalle.
  12. Main()-funktion pitรคisi palauttaa arvo, jos ohjelma toimii hyvin.
  13. 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รถ:

Sisรคkkรคinen Do While Loop

Tรคssรค on kuvakaappaus koodista:

Sisรคkkรคinen Do While Loop

Code Selitys:

  1. Sisรคltรครค iostream-otsikkotiedoston koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Mukaan lukien std-nimiavaruus, jotta sen luokkia ja toimintoja voidaan kรคyttรครค kutsumatta sitรค.
  3. Main()-funktion kutsuminen, jonka sisรครคn ohjelman logiikka pitรคisi lisรคtรค. { merkitsee main()-funktion rungon alkua.
  4. Ilmoitetaan kokonaislukumuuttuja a ja annetaan sille arvo 1.
  5. Ulkoisen do-while-silmukan luominen. { merkitsee ulomman silmukan rungon alkua.
  6. Ilmoitetaan kokonaislukumuuttuja b ja annetaan sille arvo 1.
  7. Sisรคisen do-while-silmukan luominen. { merkitsee sisemmรคn silmukan rungon alkua.
  8. Tulostaa muuttujan a arvo konsoliin. "\n" on uusi rivimerkki, joka siirtรครค hiiren osoittimen seuraavalle riville.
  9. Kasvataan b:n arvoa 1:llรค jokaisen iteraation jรคlkeen.
  10. Sisรคsilmukan rungon pรครค. Testilauseke on lisรคtty silmukan rungon loppuun. Se testaa, onko b:n arvo pienempi tai yhtรค suuri kuin 5.
  11. A:n arvo kasvaa yhdellรค jokaisen iteraation jรคlkeen.
  12. Ulomman silmukan rungon pรครค. Testilauseke on lisรคtty silmukan rungon loppuun. Se testaa, onko a:n arvo pienempi tai yhtรค suuri kuin 3.
  13. 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.

Tiivistรค tรคmรค viesti seuraavasti: