Miten Java-kielen do-while-silmukka toimii?
Java-kielen do-while-silmukka varmistaa, että ohjelma suorittaa ohjeita, kunnes määritelty lopetusehto täyttyy. Silmukan voi myös yhdistää muihin toimintoihin.
Mikä on do-while-silmukka?
Do-while-silmukkaa käytetään Java-kielessä suorittamaan ja toistamaan käskyä, kunnes määritelty lopetusehto täyttyy (eli on totta). Vastaavia silmukoita on useimmissa ohjelmointikielissä, ja niitä käytetään tiettyjen koodilohkojen suorittamiseen useita kertoja. Silmukka voidaan myös yhdistää muihin funktioihin. Java-kielessä do-while-silmukka on while-silmukan muunnos.
Mikä on Java-kielen do-while-silmukan syntaksi?
Java-kielessä do-while-silmukan syntaksi on seuraavanlainen:
do {
//statements
}
while(condition);javaSilmukka alkaa avainsanalla do, jota seuraa ohjeet tai komento, jotka ohjelman tulee suorittaa. Sulkevien hakasulkeiden jälkeen esiintyy avainsana while, joka laukaisee silmukan päättymisehdon. Tämä ehto ilmaistaan aina boolisena lausekkeena, mikä tarkoittaa, että ohjelman logiikassa se arvioidaan joko totta tai epätotta. Yleinen ja hyödyllinen esimerkki tällaisesta lausekkeesta on laskuri-muuttuja, jonka avulla voit määrittää, kuinka monta kertaa silmukka tulee toistaa.
Kuinka silmukka toimii
Kun Java-do-while-silmukka suoritetaan, ohjelma tarkastelee silmukan rungon ohjeita ja suorittaa ne. Kun tämä on suoritettu, se tarkistaa lopetusehdon. Jos tämä on totta (eli ei vielä täyttynyt), silmukka alkaa alusta ja toistaa kaikki lauseet, kunnes se tarkistetaan uudelleen. Heti kun lopetusehto täyttyy ja on siten epätosi, ohjelma lopettaa silmukan ja jatkaa muun koodin suorittamista.
Esimerkki yksinkertaisesta silmukasta
Jotta voimme havainnollistaa silmukan toimintaa, esittelemme sen rakenteen yksinkertaisen esimerkin avulla. Seuraavassa esimerkissä annamme muuttujalle x arvon 10. Java-operaattorin ++ avulla tätä arvoa korotetaan yhdellä jokaisella kierroksella ja se näytetään Java-komennolla System.out.println. Loppuehto on arvo 20, joten silmukka toistuu niin kauan kuin x on pienempi kuin 20. Koodi näyttää tältä:
public class Main {
public static void main(String[] args) {
int x = 10;
do {
System.out.println(x);
x++;
}
while (x < 20);
}
}javaJos suoritamme tämän koodin, saamme seuraavan tuloksen:
10
11
12
13
14
15
16
17
18
19javaOhjelma suorittaa sitten silmukan uudelleen, mutta tunnistaa x:n arvoksi 20. Koska se ei ole enää pienempi kuin 20, lopetusehto täyttyy ja do-while-silmukka päättyy.
Kuinka luoda ääretön silmukka arvolla true
Boolen lausekkeen true avulla on mahdollista suunnitella loputon silmukka do-while-lauseella. Tämä ei lopu koskaan, koska päättymisehtoa ei voida saavuttaa. Silmukan lopettamiseksi on käytettävä manuaalisesti yhdistelmää [Ctrl] + [C]. Vastaava koodi näyttää tältä:
public class Main {
public static void main(String[] args) {
do {
System.out.println("You are in an endless loop.");
}
while(true);
}
}javaJos suoritat tämän koodin, saat seuraavan tuloksen:
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+cjavaJos et lopeta silmukkaa manuaalisesti, se jatkaa toimintaansa.
Do-while- ja while-lauseiden ero
Monessa mielessä Java-kielen do-while-silmukka ja while-silmukka ovat samanlaisia. Ne eroavat kuitenkin toisistaan yhdessä tärkeässä suhteessa: while-silmukka arvioi lopettamisedellytyksensä heti alussa, kun taas do-while-silmukka suorittaa aina vähintään yhden kierroksen kokonaan ennen kuin se voi lopettaa. Jos haluat varmistaa, että komennot suoritetaan vähintään kerran, sinun tulee käyttää do-while-silmukkaa. Jos päätös lopettamisesta on kriittinen, harkitse sen sijaan pääkontrolloidun while-silmukan käyttöä.