1. Omvänd slinga

Java har en annan typ av whileloop - loopen do-while. Den är väldigt lik den vanliga whileslingan och består också av bara två delar: ett "villkor" och en "slingkropp". Slingkroppen exekveras om och om igen så länge villkoret är true. I allmänhet do-whileser en slinga ut så här:

do
   statement;
while (condition);

eller

do
{
   block of statements
}
while (condition);

För en whileloop är exekveringssekvensen: condition , loop body , condition , loop body , condition , loop body , ...

Men för en do-whileslinga är det något annorlunda: loop body , condition , loop body , condition , loop body , ...

Faktum är att den enda skillnaden mellan en whileloop och do-whileloop är det faktum att loopkroppen exekveras minst en gång för en do-whileloop.


2. Fördelar med att använda en do-whileslinga

I grund och botten är den enda skillnaden mellan en do-whileloop och en whileloop att kroppen av en do-whileloop exekveras minst en gång.

I allmänhet används en do-whileloop när det inte är meningsfullt att kontrollera loopens tillstånd om loopkroppen inte har exekveras. Till exempel om vissa beräkningar utförs i loopkroppen och sedan används i villkoret .

Exempel:

Programmet läser rader från tangentbordet tills ordet exitmatas in

medan göra medan
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
   s = console.nextLine();
}
while (!s.equals("exit"));

och break- continuesatserna i en do-whileloop fungerar på samma sätt som i en whileloop.


3. Jämföra do-whileloopar: Java vs Pascal

Återigen har Pascal en analog till slingan do-while, men den kallas en repeat-untilslinga. Dessutom skiljer den sig något från slingan do-while. I en repeat-untilslinga anger villkoret när slingan ska lämnas snarare än när den ska fortsätta.

Exempel:

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

Jämfört med Java är sättet som Pascal representerar detta på rent ut sagt vackert. Vi måste börja med exempel från Pascal, annars skrattar du.