Sentencia for

Esta sentencia permite ejecutar una sentencia simple o compuesta, repetidamente un número de veces conocido. Su sintaxis es la siguiente:

for_1

  • inicialización.- representa la (o las) variables de control que serán iniciadas con los valores asignados a inicialización.
  • condición.- es cualquier expresión numérica, relacional o lógica que se evalúa a un valor verdadero o falso; si se omite, se supone que es verdadera.
  • incremento.- es una de las expresiones separadas por comas cuyos valores evolucionan en el sentido de que se cumpla la condición para finalizar  la ejecución de la sentencia for.
  • sentencias ({}).- es una sentencia simple o compuesta.

Veamos el desglose:

for_2

La siguiente sentencia for del programa de arriba imprime los números del 0 al 20:

for_listado_1

Literalmente dice que ini = 0 y que mientras que ini sea menor o igual de 20, incrementa en uno el valor de ini e imprime el valor de ini.

En este otro ejemplo se imprimirá los múltiplos de 7 que se encuentra entre 7 y 112.

for_3

Observamos que, en este caso, hemos iniciado y declarado la variable en la misma sentencia for por lo que tan solo podrá realizarse en el mismo (no se podrá hacer en una sentencia while; dichas variables deben ser declaradas e iniciadas antes de que se procese la condición por primera vez).

La salida que mostrará el anterior ejemplo sería:

for_3_salida

Otro ejemplo que nos muestra el uso de las comas (,) como separador de las variables de control y de las expresiones que hacen que evolucionen los valores que intervienen en la condición de finalización.

for_4

Mostrará a la ejecución del programa:

for_4_salida

Podemos incrementar los valores desde los decimales:

for_5

Compilado y ejecutado vemos su salida:

for_%_salida

Podemos hacer uso del for para ayudarnos a imprimir las letras del abecedario en este caso lo haremos en orden inverso:

for_6

Salida por pantalla:

for_6_salida

Por último un ejemplo de un bucle infinito. Para salir deberemos pulsar las teclas ctrl+c.

for_7

for_7_salida

Vamos con un ejemplo de aplicación usando la sentencia for en la que imprimiremos un tablero de ajedrez en el que las casillas se simbolizarán como B para las casillas blancas y N para las negras. Al mismo tiempo el programa marcará con * las casillas a las que se puede mover un alfil desde una posición dada. La solución podría ser la siguiente:

  1. Vamos a definir las variables que utilizaremos en los cálculos.

    tablero1

  2. Leer la fila y la columna donde colocaremos el alfil.

    tablero2

  3. Partiendo de la fila 1, columna 1 y recorriendo el tablero por filas,

    tablero2_bisimprimir un *, una B o una N dependiendo de las condiciones especificadas a continuación:

    condiciones_tablerotablero3_bis

El programa completo quedaría así:

tablero_listado

Compilado y ejecutándolo veríamos:

tablero_salida

atras2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s