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.


2
Uppgift
Java Syntax,  nivålektion
Låst
Cat's finalize method
It's difficult to accidentally lose an object: as long as you have even one reference to an object, it remains alive. But if not, then the object is approached by the finalize method, an unpredictable assassin that works for the Java machine. Let's create this method ourselves: protected void finalize() throws Throwable. The last two words will become clear a little later.