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
while Minutes > 0 doevalúa primero, así que empezar en cero no imprimiría nada.repeatevalúa al final, enuntil Minutes = 0;, así que su cuerpo corre al menos una vez.- Ambos cuerpos llaman a
Dec(Minutes)para que el contador sí llegue a la condición de salida.
Palabras clave y builtins usados aquí
DecFormatIntegerWriteLnbegindoendprogramrepeatuntilusesvarwhile
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.
Paso 3 de 3 en Control de flujo; paso 9 de 27 en Fundamentos del lenguaje.