1. Omvendt sløyfe

Java har en annen type whileloop - loopen do-while. Den er veldig lik den vanlige whilesløyfen og består også av bare to deler: en "tilstand" og en "løkkekropp". Løkkekroppen utføres om og om igjen så lenge tilstanden er true. Generelt do-whileser en løkke slik ut:

do
   statement;
while (condition);

eller

do
{
   block of statements
}
while (condition);

For en whilesløyfe er utførelsessekvensen: betingelse , loop body , condition , loop body , condition , loop body , ...

Men for en do-whileløkke er det litt annerledes: løkkelegeme , tilstand , løkkelegeme , tilstand , løkkelegeme , ...

Faktisk er den eneste forskjellen mellom en whilesløyfe og do-whilesløyfe det faktum at sløyfekroppen utføres minst én gang for en do-whilesløyfe.


2. Fordeler med å bruke en do-whileløkke

I utgangspunktet er den eneste forskjellen mellom en do-whileløkke og en whileløkke at kroppen til en do-whileløkke utføres minst én gang.

Vanligvis brukes en do-whilesløyfe når det ikke gir mening å sjekke sløyfetilstanden hvis sløyfekroppen ikke har blitt utført. For eksempel hvis visse beregninger utføres i sløyfekroppen og deretter brukes i tilstanden .

Eksempel:

Programmet leser linjer fra tastaturet til ordet exitskrives inn

samtidig som gjør mens
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
   s = console.nextLine();
}
while (!s.equals("exit"));

Utsagnene breakog continuei en do-whileloop fungerer på samme måte som i en whileloop.


3. Sammenligning av do-whilelooper: Java vs Pascal

Nok en gang har Pascal en analog av loopen do-while, men den kalles en repeat-untilloop. Dessuten er den litt forskjellig fra do-whileløkken. I en repeat-untilløkke angir tilstanden når løkken skal gå ut i stedet for når den skal fortsettes.

Eksempler:

Pascal Java
 
Repeat
   ReadLn(s);
Until s = 'exit';
 
String s;
do {
   s = console.nextLine();
}
while ( !s.equals("exit") );

Sammenlignet med Java er måten Pascal representerer dette rett og slett vakkert på. Vi må begynne med eksempler fra Pascal, ellers ler du.