Sentencias de iteración (programación)

Sentencias de iteración (programación)
Información sobre la plantilla
Concepto:Permiten repetir una sentencia o conjunto de ellas. Es lo que se denomina ejecutar un bucle

Sentencias de iteración (programación). Permiten repetir una sentencias o conjunto de ellas. Es lo que se denomina ejecutar un bucle. Existen tres formas de iteraciones: los bucles while; do…while y for.

En todos los casos el bucle puede estar constituido por una sola sentencia o por varias. En cuyo caso se trata de un bloque de código delimitado por un par de corchetes { }. Si se trata de una sola sentencia, los corchetes no son necesarios.

Bucle while

La sentencia while permite ejecutar repetidamente un bloque de código mientras se cumpla una determinada condición que es chequeada antes de cada iteración.

Sintaxis

while ( <condicion> ) <sentencia> ;

Descripción

La sentencia while ejecuta iterativamente el bucle definido por el bloque de código <sentencia> siempre que el valor devuelto por la expresión <condición> (que debe estar entre paréntesis) sea cierto. Puesto que la condición se evalúa antes que cada ejecución del bucle, si al comienzo <condicion> devuelve falso, <sentencia> no se ejecuta ninguna vez, y el control pasa a la siguiente sentencia. Si <condición> devuelve cierto se ejecuta el bucle <sentencia>, y a continuación se vuelve a evaluar <condicion> con lo que se repite el ciclo.

Bucle do...while

La sentencia do ... while permite ejecutar repetidamente un bloque de código mientras se cumpla una determinada condición que es chequeada después de cada iteración.

Sintaxis

do <sentencia> while ( <condición> );

Descripción

La sentencia do ejecuta repetidamente el bucle definido por el bloque de código <sentencia> hasta que la sentencia de control <condición> devuelve el valor falso. Puesto que el control se evalúa después de cada ejecución del bucle, resulta que este se ejecuta al menos una vez, aunque <condición> devuelva el valor falso desde el principio (si requiere que el bucle no se ejecute ninguna vez, es mejor utilizar while). La forma más genérica de la expresión suele ser:

do {
 <sentencia>; 
}  while ( <condición> );

Bucle for

Esta sentencia permite realizar un bucle repetidamente en base a una condición, la cual suele estar basada en el valor de un contador que se actualiza después de cada ejecución del bucle.

Sintaxis

 for ( [<inicio>] ; [<condicion>] ; [<incremento>] ) <sentencia>

Descripción

La sentencia for realiza un bucle iterativo, es equivalente al:

 for <inicio> to <condición> step <incremento>
   <sentencia> 
 next

De otros lenguajes. <inicio> e <incremento> pueden ser llamadas a funciones o sentencias de asignación. <sentencia> es del cuerpo del bucle, y puede ser cualquier bloque de código. La utilización más común suele adoptar la forma:

 for ( <inicio> ; <condición> ; <incremento> ) {
   <sentencia> 
 }

Ejemplo

for(i=0; i<n; i++) { /* sentencias del bucle */ }
  • <inicio> inicia las variables para el bucle antes de la primera iteración. Puede ser una expresión o una declaración. El ejemplo que sigue sería correcto en C++:

for (int i=0; i<10; i++) printf("i =%5.0d\n", i); En cambio, para compilarlo en C sería necesario declarar i en una expresión anterior:

int i;
for (i=0; i<10; i++)  printf("i =%5.0d\n", i);

El ámbito de una variable definida en la expresión <inicio> es variable, depende del interruptor -Vd del compilador.

  • <condición> Debe ser una expresión relacional (devuelva un valor lógico). Es comprobada antes de la primera ejecución del bloque <sentencia>, que es ejecutado repetidamente hasta que <condición> sea falso, por lo que si <condición> devuelve falso desde el principio, el bucle no se ejecuta nunca.
  • <incremento>. Después de cada iteración del bucle, <incremento> incrementa un contador de bucle; en consecuencia j++ es funcionalmente equivalente a ++j.
  • <sentencia> es el bucle de for; sentencia o bloque de código que se ejecuta iterativamente. El ámbito de cualquier identificador declarado dentro él se limita al final de la sentencia de control.

Todas las expresiones son opcionales, pero los separadores ; no pueden faltar. Si falta <condición>, se supone que es siempre cierta, por lo que se trata de un bucle indefinido del que se saldrá por otro mecanismo externo al propio for, que pueden ser un break o un return. Es típico utilizar este tipo de construcciones para construir bucles con una o más condiciones de salida:

for ( ; ; ) {     // bucle infinito del que se sale con varias
                 // condiciones mediante diversas técnicas
  ...
  if ( C == 'f' )  break;
  ...
  if ( C == 'd' )  break;
  ...
  if ( C == 'x' )  return;
  ...
  if ( C == 'z' )  throw (false);
}

Puede Consultar

Fuente