JAVA CIKLAI
Java do while ciklas
do while yra while ciklo variantas, kuris pirmiausia įvykdo kodo bloką ir tik tada patikrina sąlygą. Dėl to jo turinys visada vykdomas bent vieną kartą.
Kaip veikia do while?
- Pirmiausia įvykdomas
dokodo blokas. - Po jo patikrinama
whilesąlyga. - Jei sąlyga yra
true, blokas kartojamas. - Jei sąlyga yra
false, ciklas baigiamas.
do while sintaksė
do {
// Kodo blokas įvykdomas prieš tikrinant sąlygą
} while (sąlyga);Jis tik parodo, kur rašomas kartojamas kodas ir kur tikrinama tikroji sąlyga.
- Java pirmiausia įeina į
dobloką – prieš tai ji dar netikrina jokios sąlygos. - Įvykdžiusi visas bloko instrukcijas, Java pasiekia apačioje esantį
while. - Jeigu sąlyga yra
true, programa grįžta įdobloko pradžią. - Jeigu sąlyga yra
false, ciklas baigiasi ir vykdomas po jo esantis kodas.
while (sąlyga) yra privalomas.Skirtingai nuo paprasto while bloko, do while instrukcija baigiama ženklu ;.
Puodelių plovimo pavyzdys
Ona turi išplauti tris puodelius. Po kiekvieno išplauto puodelio ji patikrina, ar jų dar liko:
int neplautiPuodeliai = 3;
do {
System.out.println("Plaunamas puodelis. Liko: " + neplautiPuodeliai);
neplautiPuodeliai--;
} while (neplautiPuodeliai > 0);
System.out.println("Visi puodeliai išplauti");Plaunamas puodelis. Liko: 3
Plaunamas puodelis. Liko: 2
Plaunamas puodelis. Liko: 1
Visi puodeliai išplauti
- Kintamasis
neplautiPuodeliaipradžioje saugo skaičių3. doblokas iš karto įvykdomas ir parodo dabartinį puodelių skaičių.- Komanda
neplautiPuodeliai--sumažina jų skaičių vienetu. - Apačioje
whilepatikrina, ar skaičius vis dar didesnis už nulį. Jei taip, blokas kartojamas. - Po trečio puodelio reikšmė tampa
0, sąlyga yra klaidinga ir programa parodo Visi puodeliai išplauti.
Kai sąlyga klaidinga nuo pradžių
Net jei sąlyga iš karto yra klaidinga, do blokas jau būna įvykdytas:
int kambarioTemperatura = 25;
do {
System.out.println("Kambaryje yra " + kambarioTemperatura + " °C");
} while (kambarioTemperatura < 20);Kambaryje yra 25 °C
- Kintamasis
kambarioTemperaturasaugo reikšmę25. - Java pirmiausia įvykdo
dobloką, todėl temperatūra konsolėje parodoma vieną kartą. - Tik po to tikrinama sąlyga
kambarioTemperatura < 20. - Palyginimas
25 < 20yrafalse, todėl ciklas nebekartojamas. - Tai ir yra svarbiausias skirtumas: paprastas
whiletokį bloką būtų praleidęs, odo whilejį įvykdė kartą.
Skirtumas tarp while ir do while
int kiekis = 0;
while (kiekis > 0) {
System.out.println("while blokas");
}
do {
System.out.println("do while blokas");
} while (kiekis > 0);do while blokas
- Kintamasis
kiekisnuo pat pradžių yra0. - Paprastas
whilepirmiausia patikrina0 > 0. Sąlyga klaidinga, todėl jo tekstas nepasirodo. do whilepirmiausia parodo tekstą do while blokas.- Tik tada jis patikrina tą pačią klaidingą sąlygą ir nusprendžia bloko nebekartoti.
| Ciklas | Kada tikrina sąlygą? | Mažiausias iteracijų skaičius |
|---|---|---|
while | Prieš kodo bloką | 0 |
do while | Po kodo bloko | 1 |
Kada rinktis do while?
Šis ciklas naudingas, kai prieš tikrinant tęsimo sąlygą reikia bent kartą:
- parodyti meniu arba pranešimą;
- paprašyti naudotojo įvesties;
- parodyti dabartinę reikšmę prieš sprendžiant, ar veiksmą kartoti;
- atlikti pirmą bandymą ir tik tada spręsti, ar bandyti dar kartą.
Jei ji visada lieka true, do while taip pat taps begaliniu ciklu.

