# Kuidas töötab Java do-while tsükkel?

Java do-while-tsükkel tagab, et programm täidab käske, kuni on saavutatud määratud lõpetamistingimus. Tsüklit saab kombineerida ka teiste funktsioonidega.

## Mis on do-while-tsükkel?

Do-while-tsüklit kasutatakse Java-keeles käsu täitmiseks ja kordamiseks, **kuni määratud lõpetamistingimus on täidetud** (st tõene). Sarnased tsüklid on olemas enamikus programmeerimiskeeltes ja neid kasutatakse teatud koodiblokkide mitmekordseks täitmiseks. Tsüklit saab kombineerida ka teiste funktsioonidega. 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:

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

Silmus algab märksõ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õpetamise tingimuse. See tingimus on alati väljendatud **boolese väljendina**, 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 loendurmuutuja, mis võimaldab määrata, mitu korda silmus peab korduma.

## Kuidas silmus töötab

Kui Java do-while-tsükkel täidetakse, vaatab programm tsükli kehas olevaid juhiseid ja täidab need. Kui see on tehtud, kontrollib programm lõpetamistingimust. Kui see on tõene (st veel täitmata), alustab tsükkel algusest ja kordab kõiki käske, kuni seda uuesti kontrollitakse. Kui aga lõpetamistingimus on täidetud ja seega vale, **lõpetab** programm **tsükli** ja jätkab ülejäänud koodiga.

## Lihtsa tsükli näide

Selleks, et illustreerida, kuidas silmus töötab, näitame selle struktuuri lihtsa näite abil. Järgmises näites omistame muutujale `x` väärtuse 10. Java operaatori `++` abil suurendatakse seda väärtust iga läbimisega 1 võrra ja kuvatakse Java käsuga `System.out.println`. Meie lõpetamistingimus on väärtus 20, seega kordub tsükkel seni, kuni x on väiksem kui 20. Kood näeb välja järgmine:

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

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

```java
10
11
12
13
14
15
16
17
18
19
```

Seejärel käivitab programm tsükli uuesti, kuid tunnistab x väärtuseks 20. Kuna see ei ole enam väiksem kui 20, on lõpetamistingimus täidetud ja do-while tsükkel lõpetatakse.

## Kuidas luua lõputu tsükkel väärtusega `true`

Booli avaldise `true` abil on võimalik kujundada do-while abil **lõputu tsükkel**. See ei lõpe kunagi ise, kuna lõpetamistingimust ei ole võimalik saavutada. Tsükli lõpetamiseks peate **käsitsi kasutama kombinatsiooni \[Ctrl\] + \[C\]**. Vastav kood näeb välja järgmine:

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

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

```java
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
```

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õpetamistingimust **kohe alguses**, samas kui do-while-tsükkel täidetakse alati **vähemalt üks kord täielikult** enne lõpetamist. Kui soovite tagada, et käskudest vähemalt üks täidetakse, kasutage do-while-tsüklit. Kui lõpetamise otsus on kriitiline, kaaluge pigem pea kontrollitava while-tsükli kasutamist.


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-do-while-tsuekkel/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-do-while-tsuekkel/) for AI/LLM consumption.