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?

  1. Pirmiausia įvykdomas do kodo blokas.
  2. Po jo patikrinama while sąlyga.
  3. Jei sąlyga yra true, blokas kartojamas.
  4. Jei sąlyga yra false, ciklas baigiamas.

do while sintaksė

do {
    // Kodo blokas įvykdomas prieš tikrinant sąlygą
} while (sąlyga);
Šis sintaksės šablonas konsolės rezultato neturi.

Jis tik parodo, kur rašomas kartojamas kodas ir kur tikrinama tikroji sąlyga.

  1. Java pirmiausia įeina į do bloką – prieš tai ji dar netikrina jokios sąlygos.
  2. Įvykdžiusi visas bloko instrukcijas, Java pasiekia apačioje esantį while.
  3. Jeigu sąlyga yra true, programa grįžta į do bloko pradžią.
  4. Jeigu sąlyga yra false, ciklas baigiasi ir vykdomas po jo esantis kodas.
Kabliataškis po 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");
Konsolės rezultatas

Plaunamas puodelis. Liko: 3
Plaunamas puodelis. Liko: 2
Plaunamas puodelis. Liko: 1
Visi puodeliai išplauti

  1. Kintamasis neplautiPuodeliai pradžioje saugo skaičių 3.
  2. do blokas iš karto įvykdomas ir parodo dabartinį puodelių skaičių.
  3. Komanda neplautiPuodeliai-- sumažina jų skaičių vienetu.
  4. Apačioje while patikrina, ar skaičius vis dar didesnis už nulį. Jei taip, blokas kartojamas.
  5. 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);
Konsolės rezultatas

Kambaryje yra 25 °C

  1. Kintamasis kambarioTemperatura saugo reikšmę 25.
  2. Java pirmiausia įvykdo do bloką, todėl temperatūra konsolėje parodoma vieną kartą.
  3. Tik po to tikrinama sąlyga kambarioTemperatura < 20.
  4. Palyginimas 25 < 20 yra false, todėl ciklas nebekartojamas.
  5. Tai ir yra svarbiausias skirtumas: paprastas while tokį bloką būtų praleidęs, o do while jį į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);
Konsolės rezultatas

do while blokas

  1. Kintamasis kiekis nuo pat pradžių yra 0.
  2. Paprastas while pirmiausia patikrina 0 > 0. Sąlyga klaidinga, todėl jo tekstas nepasirodo.
  3. do while pirmiausia parodo tekstą do while blokas.
  4. Tik tada jis patikrina tą pačią klaidingą sąlygą ir nusprendžia bloko nebekartoti.
while ir do while ciklų palyginimas
CiklasKada tikrina sąlygą?Mažiausias iteracijų skaičius
whilePrieš kodo bloką0
do whilePo kodo bloko1

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ą.
Kaip ir while cikle, sąlygos būsena turi keistis.

Jei ji visada lieka true, do while taip pat taps begaliniu ciklu.