typestar

while y repeat en Delphi

Una cuenta regresiva de tres minutos de un horno, escrita dos veces, una en cada forma de bucle.

program WhileRepeat;
uses SysUtils;
var
  Minutes: Integer;
begin
  // while tests first, so a start of zero runs the body zero times.
  Minutes := 3;
  while Minutes > 0 do
  begin
    WriteLn(Format('kiln timer at %d', [Minutes]));
    Dec(Minutes);
  end;
  // repeat tests last, so the body always runs at least once.
  Minutes := 3;
  repeat
    WriteLn(Format('glaze timer at %d', [Minutes]));
    Dec(Minutes);
  until Minutes = 0;
  WriteLn('both timers reached zero');
end.

Cómo funciona

  1. while Minutes > 0 do evalúa primero, así que empezar en cero no imprimiría nada.
  2. repeat evalúa al final, en until Minutes = 0;, así que su cuerpo corre al menos una vez.
  3. Ambos cuerpos llaman a Dec(Minutes) para que el contador sí llegue a la condición de salida.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
444
Tokens
81
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 61 segundos.

Escribe este fragmento

Paso 3 de 3 en Control de flujo; paso 9 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →