Java do-while-tsükkel tagab, et programm täidab käske, kuni on saa­vu­ta­tud määratud lõ­pe­ta­mis­tin­gi­mus. Tsüklit saab kom­bi­nee­rida ka teiste funkt­sioo­ni­dega.

Mis on do-while-tsükkel?

Do-while-tsüklit ka­su­ta­takse Java-keeles käsu täit­miseks ja kor­da­miseks, kuni määratud lõ­pe­ta­mis­tin­gi­mus on täidetud (st tõene). Sarnased tsüklid on olemas enamikus prog­ram­mee­ri­mis­keel­tes ja neid ka­su­ta­takse teatud koo­dib­lok­kide mit­me­kord­seks täit­miseks. Tsüklit saab kom­bi­nee­rida ka teiste funkt­sioo­ni­dega. Java-keeles on do-while-tsükkel while-tsükli variant.

Mis on Java do-while-tsükli süntaks?

Java keeles näeb do-while-tsükli süntaks välja järgmine:

do {
	//statements
}
while(condition);
java

Silmus algab märk­sõ­naga do, millele järgnevad juhised või käsk, mida programm peab täitma. Sulgudes ilmub märksõna while, mis käivitab silmuse lõ­pe­ta­mise tingimuse. See tingimus on alati väl­jen­da­tud boolese väl­jen­dina, mis tähendab, et programmi loogika raames on selle väärtus kas tõene või vale. Sellise väljendi levinud ja kasulik näide on loen­dur­muu­tuja, mis võimaldab määrata, mitu korda silmus peab korduma.

Kuidas silmus töötab

Kui Java do-while-tsükkel täi­de­takse, vaatab programm tsükli kehas olevaid juhiseid ja täidab need. Kui see on tehtud, kont­rol­lib programm lõ­pe­ta­mis­tin­gi­must. Kui see on tõene (st veel täitmata), alustab tsükkel algusest ja kordab kõiki käske, kuni seda uuesti kont­rol­li­takse. Kui aga lõ­pe­ta­mis­tin­gi­mus on täidetud ja seega vale, lõpetab programm tsükli ja jätkab ülejäänud koodiga.

Lihtsa tsükli näide

Selleks, et il­lust­ree­rida, kuidas silmus töötab, näitame selle struk­tuuri lihtsa näite abil. Järgmises näites omistame muutujale x väärtuse 10. Java ope­raa­tori ++ abil suu­ren­da­takse seda väärtust iga lä­bi­mi­sega 1 võrra ja kuvatakse Java käsuga System.out.println. Meie lõ­pe­ta­mis­tin­gi­mus on väärtus 20, seega kordub tsükkel seni, kuni x on väiksem kui 20. Kood näeb välja järgmine:

public class Main {
	public static void main(String[] args) {
		int x = 10;
		do {
			System.out.println(x);
			x++;
		}
		while (x < 20);
	}
}
java

Kui me selle koodi käivitame, saame järgmise väljundi:

10
11
12
13
14
15
16
17
18
19
java

Seejärel käivitab programm tsükli uuesti, kuid tunnistab x väär­tu­seks 20. Kuna see ei ole enam väiksem kui 20, on lõ­pe­ta­mis­tin­gi­mus täidetud ja do-while tsükkel lõ­pe­ta­takse.

Kuidas luua lõputu tsükkel väär­tu­sega true

Booli avaldise true abil on võimalik kujundada do-while abil lõputu tsükkel. See ei lõpe kunagi ise, kuna lõ­pe­ta­mis­tin­gi­must ei ole võimalik saavutada. Tsükli lõ­pe­ta­miseks peate käsitsi kasutama kom­bi­nat­siooni [Ctrl] + [C]. Vastav kood näeb välja järgmine:

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

Kui te selle koodi käivitate, saate järgmise väljundi:

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

Kui te ei lõpeta tsüklit käsitsi, jätkub see töötamine.

Erinevus do-while ja while vahel

Mitmes mõttes on Java do-while-tsükkel ja while-tsükkel sarnased. Siiski erinevad nad ühes olulises aspektis: while-tsükkel hindab oma lõ­pe­ta­mis­tin­gi­must kohe alguses, samas kui do-while-tsükkel täi­de­takse alati vähemalt üks kord täie­li­kult enne lõ­pe­ta­mist. Kui soovite tagada, et käskudest vähemalt üks täi­de­takse, kasutage do-while-tsüklit. Kui lõ­pe­ta­mise otsus on krii­ti­line, kaaluge pigem pea kont­rol­li­tava while-tsükli ka­su­ta­mist.

Go to Main Menu