Intrucciones (Interadores)
Intrucción for
Sección titulada «Intrucción for»Una de las instrucciones repetitivas más utilizadas es la instrucción for. Si usa la instrucción for, ya debería saber cuántas veces va a repetir la implementación de instrucciones.
En el siguiente ejemplo, la instrucción for se utiliza para realizar un bucle de cinco veces. La variable intCount cuenta el número de veces que se ha realizado el bucle.
var intCount: Integer; total: Integer;begin for intCount := 1 to 5 do total := total + 3;end;Intrucciones for downto
Sección titulada «Intrucciones for downto»Con la instrucción for, cuenta hacia arriba, lo que significa que la instrucción for aumentará el valor de la variable. También puede disminuir utilizando la instrucción for downto, que realiza la cuenta hacia abajo.
var intCount: Integer; totalSales: Integer; numberSales: Integer; sales: array[5] of Integer;begin GetSales(sales);
for intCount := 5 downto 1 do begin totalSales := totalSales + sales[intCount]; numberSales := numberSales + 1; end;end;Instrucción foreach
Sección titulada «Instrucción foreach»La instrucción foreach solo se puede usar en colecciones de tipo Enumerable (Lista de y Diccionario de), y no se puede usar con matrices.
var stringList: List of [Text[20]]; stringItem: Text[20];begin foreach stringItem in stringList do Message(stringItem);end;Instrucción while
Sección titulada «Instrucción while»La instrucción while comprueba primero si la condición es verdadera antes de iniciar el bucle. En caso de que esta condición siga siendo verdadera, seguirá ejecutando las instrucciones en el bloque de while.
var index: Integer; totalSales: Integer; sales: array[5] of Integer;begin GetSales(sales);
while totalSales < 8 do begin index := index + 1; totalSales := totalSales + sales[index]; end;end;Instrucción repeat - until
Sección titulada «Instrucción repeat - until»La instrucción while comprueba primero si existe una condición válida antes de iniciar el bucle, mientras que la instrucción repeat until se ejecuta primero y después comprueba una condición. Se repetirá en bucle hasta que la condición sea válida, lo que significa que las instrucciones repeat until se ejecutan al menos una vez. El bucle continuará, siempre que la condición no sea válida.
var index: Integer; totalSales: Integer; sales: array[5] of Integer;begin GetSales(sales);
repeat index := index + 1; totalSales := totalSales + sales[index]; until totalSales >= 8;end;Instrucción with
Sección titulada «Instrucción with»La instrucción with se usa a veces en combinación con una instrucción repetitiva, pero también se puede usar de forma independiente. El propósito de la instrucción with es reducir el uso de las variables del registro. Esta estructura se ilustra en el siguiente ejemplo, donde se crea una variable myTable y se asigna un valor a todos los campos de la tabla.
var myTable: Record MyTable;begin myTable."No." := 1; myTable.Amount := 100; myTable.Credits := 10; myTable."Document Type" := myTable."Document Type"::Invoice; myTable.Reason := myTable.Reason::Return; myTable.Refund := 100;end;