Cuando se conoce el número de veces que deberá ejecutarse un determinado bloque de instrucciones o una instrucción, la estructura de control repetitiva For-to-do es la forma más conveniente a usarse. La estructura For-to-do necesita de la declaración de una variable de control de tipo entero, enumerado o carácter, que nos permitirá controlar el número de repeticiones que realizará la estructura, pero los tipos de datos int64 y qword, no se pueden usar como variables de control en una estructura for-to-do. El siguiente ejemplo nos permite calcular la media de 5 números enteros ingresados por el usuario.

En el ejemplo la variable i, es la variable de control de la estructura For-to-do, y se debe indicar el valor inicial y final en la estructura. En el ejemplo el valor inicial es 1 y el final es 5. A esta estructura también se le conoce como estructura de repetición ascendente, porque la variable de control se incrementa hasta alcanzar el valor final. Después del do de una estructura for-to-do no se debe colocar un punto y coma. A continuación se hará el mismo programa utilizado en las estructuras Repeat-Until y While-do, que nos permite mostrar el cuadrado y el cubo, desde el 1 hasta el numero entero n ingresado por el usuario; el programa del mismo modo pedirá al usuario si desea continuar con la ejecución del mismo.

Como puede observar la estructura While-do interior fue reemplazado por la estructura For-to-do. Algo muy importante, es que dentro de una estructura For-to-do no se debe modificar el valor de la variable de control. Es decir el compilador no permite modificar la variable de control dentro de un bucle For-to-do. El ejemplo que se escribe a continuación usa como variable de control a una variable de tipo carácter, no es un programa muy útil ya que sólo muestra el alfabeto ingles en mayúsculas de la A a la Z, pero sirve para mostrar como utilizar una variable de control de tipo carácter.

A continuación otro programa que sirve sólo para mostrarnos como usar una variable de control de tipo enumerado.

Los bucles for-to-do también se pueden encadenar, se debe tener en cuenta que si el el bucle tiene un bloque de instrucciones, este debe estar entre las palabras reservadas Begin y End. El siguiente programa hace uso de un bucle for-to-do encadenado para saber de cuantas maneras pueden caer 2 dados, numerados del 1 al 6:

En este ejemplo no se usan bloques de instrucciones, por lo que no se hace necesario el uso de las palabras reservadas Begin y End.