A hurkok olyan vezérlési folyamat utasítások, amelyek lehetővé teszik a kód ismételt végrehajtását egy adott feltétel alapján.
A do while
ciklus a hurok egy változata, while
amely a feltétel blokkjának ellenőrzése előtt egyszer végrehajtja a kódblokkot. Ezután megismétli a ciklust, amíg a feltétel igaz.
Szintaxis
Itt van a do while ciklus alapvető szintaxisa:
do { // body of the loop } while (condition);
Vegye figyelembe, hogy a végződési feltétel tesztelése a hurok minden végrehajtása után történik. Ez azt jelenti, hogy a ciklus mindig legalább egyszer végrehajtásra kerül, még akkor is, ha a feltétel hamis az elején.
Ez ellentétben áll a normál while
ciklussal, ahol az állapotot a ciklus előtt tesztelik, és a kódblokk végrehajtása nem garantált.
Most itt van egy szabályos while ciklus:
while (condition) { // body of the loop }
Példa a do while ciklusra
Nézzünk meg egy működő példát:
#include int main () { int number = 1; do { std::cout << number << std::endl; number++; } while (number < 5); return 0; }
Kimenet:
1 2 3 4
Ebben a példában egy egész változót inicializálunk number = 1
. Ezután ismételten végrehajtjuk a ciklust.
A hurok belsejében kinyomtatjuk a változót, és eggyel növeljük a változót. A hurkot addig hajtják végre, amíg number
az kisebb, mint 5. Ezért kinyomtatják az 1-4 számokat.
2. példa
Itt van egy másik példa és annak kimenete:
10
#include int main () { int number = 10; do { std::cout << number << std::endl; number++; } while (number < 5); return 0; }
Ebben a példában ugyanazt a kódot használjuk, mint az első példában. De most a változónkat inicializáljuk number = 10
.
Mivel a 10 nem kisebb, mint 5, a feltételünk már hamis. A ciklus akkor is végrehajtásra kerül, és a 10 az egyetlen nyomtatott kimenet.
Mikor érdemes használni a Do while Loop-ot?
A do while
ciklus nagyszerű eszköz, ha többször kell végrehajtani a kódot. Amint fentebb említettük, ezt a szintaxist mindig akkor szeretné használni, amikor hurokra van szüksége, és azt is garantálnia kell, hogy a kódblokk legalább egy végrehajtását végrehajtják.
Képzeljen el néhány kódot, mint a 2. példában, de nem inicializáljuk változónkat kemény kódolású értékkel. Ehelyett felhasználói bevitelt használunk.
Nem garantálhatjuk, hogy a felhasználói bevitel elég kicsi, de mégis szeretnénk látni legalább egy nyomtatott utasítást a kimeneti konzolon. Ez tökéletes felhasználási eset a do while
hurokhoz.
// Pseudo code where do while is useful: int number = getUserInput(); do { std::cout << number << std::endl; number = someUpdateCalculation(); } while (number < 5);