Kaip veikia Java do-while ciklas?
Java do-while ciklas užtikrina, kad programa vykdytų instrukcijas, kol bus pasiekta apibrėžta nutraukimo sąlyga. Ciklą taip pat galima derinti su kitomis funkcijomis.
Kas yra „do-while“ ciklas?
Do-while ciklas Java kalboje naudojamas instrukcijai vykdyti ir kartoti, kol bus įvykdyta apibrėžta nutraukimo sąlyga (t. y. tiesa). Panašūs ciklai egzistuoja daugumoje programavimo kalbų ir naudojami tam tikriems kodo blokams vykdyti keletą kartų. Ciklas taip pat gali būti derinamas su kitomis funkcijomis. Java kalboje do-while ciklas yra while ciklo variantas.
Kokia yra Java do-while ciklo sintaksė?
Java kalboje do-while ciklo sintaksė atrodo taip:
do {
//statements
}
while(condition);javaCiklas prasideda raktiniu žodžiu do, po kurio eina instrukcijos arba komandos, kurias programa turi įvykdyti. Po uždaromųjų skliaustų pasirodo raktinis žodis while, kuris sukelia ciklo pabaigos sąlygą. Ši sąlyga visada išreiškiama kaip Būlio išraiška, tai reiškia, kad pagal programos logiką ji įvertinama kaip teisinga arba neteisinga. Dažnas ir naudingas tokios išraiškos pavyzdys yra skaitiklio kintamasis, kuris leidžia nustatyti, kiek kartų ciklas turi pasikartoti.
Kaip veikia kilpa
Kai vykdomas Java do-while ciklas, programa peržiūri instrukcijas ciklo korpuse ir jas vykdo. Kai tai baigta, ji patikrina nutraukimo sąlygą. Jei ji yra teisinga (t. y. dar neįvykdyta), ciklas prasideda nuo pradžios ir kartojasi visos instrukcijos, kol ji vėl patikrinama. Tačiau, kai tik nutraukimo sąlyga įvykdoma ir todėl tampa neteisinga, programa nutraukia ciklą ir tęsia likusį kodą.
Paprastos kilpos pavyzdys
Norėdami paaiškinti, kaip veikia kilpa, paprastu pavyzdžiu parodysime jos struktūrą. Šiame pavyzdyje kintamajam x priskirsime vertę 10. Naudodami Java operatorius ++, šią vertę kiekvienu ciklu padidinsime 1 ir parodysime Java komanda System.out.println. Mūsų nutraukimo sąlyga yra vertė 20, taigi ciklas kartojamas tol, kol x yra mažesnis už 20. Kodas atrodo taip:
public class Main {
public static void main(String[] args) {
int x = 10;
do {
System.out.println(x);
x++;
}
while (x < 20);
}
}javaJei vykdysime šį kodą, gausime tokį rezultatą:
10
11
12
13
14
15
16
17
18
19javaTada programa vėl vykdo kilpą, bet atpažįsta, kad x vertė yra 20. Kadangi ji nebėra mažesnė nei 20, nutraukimo sąlyga yra įvykdyta ir do-while kilpa baigiama.
Kaip sukurti begalinį ciklą su verte true
Naudojant Būlio išraišką true, galima sukurti begalinę kilpą su do-while. Ji niekada nesustos, nes negali būti pasiekta jokios baigimo sąlygos. Norėdami užbaigti kilpą, turite rankiniu būdu naudoti klavišų kombinaciją [Ctrl] + [C]. Atitinkamas kodas atrodo taip:
public class Main {
public static void main(String[] args) {
do {
System.out.println("You are in an endless loop.");
}
while(true);
}
}javaJei vykdysite šį kodą, gausite tokį rezultatą:
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
ctrl+cjavaJei ciklo nebaigsite rankiniu būdu, jis toliau veiks.
Skirtumas tarp „do-while“ ir „while“
Daugeliu atžvilgių Java do-while ciklas ir while ciklas yra panašūs. Tačiau jie skiriasi vienu esminiu aspektu: while ciklas savo nutraukimo sąlygą įvertina iš karto pradžioje, o do-while ciklas visada prieš nutraukimą bent kartą įvykdo visą ciklą. Jei norite užtikrinti, kad komandos būtų vykdomos bent kartą, turėtumėte naudoti do-while ciklą. Jei sprendimas dėl užbaigimo yra kritinis, apsvarstykite galimybę naudoti galvos valdomą while ciklą.