Java do-while ciklas užtikrina, kad programa vykdytų inst­ruk­ci­jas, kol bus pasiekta apibrėžta nu­trau­ki­mo sąlyga. Ciklą taip pat galima derinti su kitomis funk­ci­jo­mis.

Kas yra „do-while“ ciklas?

Do-while ciklas Java kalboje nau­do­ja­mas inst­ruk­ci­jai vykdyti ir kartoti, kol bus įvykdyta apibrėžta nu­trau­ki­mo sąlyga (t. y. tiesa). Panašūs ciklai eg­zis­tuo­ja daugumoje prog­ra­ma­vi­mo kalbų ir naudojami tam tikriems kodo blokams vykdyti keletą kartų. Ciklas taip pat gali būti derinamas su kitomis funk­ci­jo­mis. 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);
java

Ciklas prasideda raktiniu žodžiu do, po kurio eina inst­ruk­ci­jos arba komandos, kurias programa turi įvykdyti. Po už­da­ro­mų­jų skliaustų pasirodo raktinis žodis while, kuris sukelia ciklo pabaigos sąlygą. Ši sąlyga visada iš­reiš­kia­ma kaip Būlio išraiška, tai reiškia, kad pagal programos logiką ji įver­ti­na­ma kaip teisinga arba ne­tei­sin­ga. Dažnas ir naudingas tokios išraiškos pavyzdys yra skai­tik­lio kin­ta­ma­sis, kuris leidžia nustatyti, kiek kartų ciklas turi pa­si­kar­to­ti.

Kaip veikia kilpa

Kai vykdomas Java do-while ciklas, programa peržiūri inst­ruk­ci­jas ciklo korpuse ir jas vykdo. Kai tai baigta, ji patikrina nu­trau­ki­mo sąlygą. Jei ji yra teisinga (t. y. dar ne­įvyk­dy­ta), ciklas prasideda nuo pradžios ir kartojasi visos inst­ruk­ci­jos, kol ji vėl pa­tik­ri­na­ma. Tačiau, kai tik nu­trau­ki­mo sąlyga įvykdoma ir todėl tampa ne­tei­sin­ga, programa nutraukia ciklą ir tęsia likusį kodą.

Paprastos kilpos pavyzdys

Norėdami pa­aiš­kin­ti, kaip veikia kilpa, paprastu pavyzdžiu pa­ro­dy­si­me jos struktūrą. Šiame pavyzdyje kin­ta­ma­jam x pri­skir­si­me vertę 10. Naudodami Java ope­ra­to­rius ++, šią vertę kiekvienu ciklu pa­di­din­si­me 1 ir pa­ro­dy­si­me Java komanda System.out.println. Mūsų nu­trau­ki­mo sąlyga yra vertė 20, taigi ciklas kar­to­ja­mas 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);
	}
}
java

Jei vykdysime šį kodą, gausime tokį rezultatą:

10
11
12
13
14
15
16
17
18
19
java

Tada programa vėl vykdo kilpą, bet atpažįsta, kad x vertė yra 20. Kadangi ji nebėra mažesnė nei 20, nu­trau­ki­mo 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šų kom­bi­na­ci­ją [Ctrl] + [C]. Ati­tin­ka­mas kodas atrodo taip:

public class Main {
	public static void main(String[] args) {
		do {
			System.out.println("You are in an endless loop.");
		}
		while(true);
	}
}
java

Jei 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+c
java

Jei ciklo ne­baig­si­te 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 nu­trau­ki­mo sąlygą įvertina iš karto pradžioje, o do-while ciklas visada prieš nu­trau­ki­mą bent kartą įvykdo visą ciklą. Jei norite už­tik­rin­ti, kad komandos būtų vykdomos bent kartą, tu­rė­tu­mė­te naudoti do-while ciklą. Jei spren­di­mas dėl užbaigimo yra kritinis, ap­svars­ty­ki­te galimybę naudoti galvos valdomą while ciklą.

Go to Main Menu