1. Circuito reverso

Java tem outro tipo de whileloop — o do-whileloop. É muito semelhante ao whileloop comum e também consiste em apenas duas partes: uma "condição" e um "corpo do loop". O corpo do loop é executado continuamente enquanto a condição for true. Em geral, um do-whileloop se parece com isso:

do
   statement;
while (condition);

ou

do
{
   block of statements
}
while (condition);

Para um whileloop, a sequência de execução é: condição , corpo do loop , condição , corpo do loop , condição , corpo do loop , ...

Mas para um do-whileloop, é um pouco diferente: loop body , condition , loop body , condition , loop body , ...

Na verdade, a única diferença entre um whileloop e do-whileum loop é o fato de que o corpo do loop é executado pelo menos uma vez por do-whileloop.


2. Benefícios de usar um do-whileloop

Basicamente, a única diferença entre um do-whileloop e um whileloop é que o corpo de um do-whileloop é executado pelo menos uma vez.

Geralmente, um do-whileloop é usado quando não faz sentido verificar a condição do loop se o corpo do loop não tiver sido executado. Por exemplo, se determinados cálculos forem executados no corpo do loop e depois usados ​​na condição .

Exemplo:

O programa lê as linhas do teclado até que a palavra exitseja digitada

enquanto fazer enquanto
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
   s = console.nextLine();
}
while (!s.equals("exit"));

As instruções breake em um loop funcionam da mesma maneira que em um loop.continuedo-whilewhile


3. Comparando do-whileloops: Java vs Pascal

Mais uma vez, Pascal tem um análogo do do-whileloop, mas é chamado de repeat-untilloop. Além disso, é ligeiramente diferente do do-whileloop. Em um repeat-untilloop, a condição indica quando sair do loop em vez de quando continuá-lo.

Exemplos:

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

Comparado ao Java, a maneira como Pascal representa isso é absolutamente bela. Temos que começar com exemplos de Pascal, senão você vai rir.


2
Tarefa
Java Syntax,  nível 6lição 5
Bloqueado
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.