Recopilación de Apuntes 1.sentencias de Iteración

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Instrucciones de iteración (C++)

Las instrucciones de iteración producen instrucciones (o instrucciones compuestas) que se


ejecutarán cero o más veces, según determinados criterios de la finalización de bucle. Cuando estas
instrucciones son instrucciones compuestas, se ejecutan en orden, excepto cuando se encuentra la
instrucción break o la instrucción continue.
C++ proporciona cuatro instrucciones de iteración: while, do, for y range-based for. Cada una de
ellas se repite hasta que la expresión de finalización se evalúa como cero (false) o hasta que se
fuerza la finalización del bucle con una instrucción break. En la tabla siguiente se resumen estas
instrucciones y sus acciones; cada una se explica detalladamente en las secciones siguientes.

Instrucciones de Iteración

La parte de instrucción de una instrucción de iteración no puede ser una declaración. Sin embargo,
puede ser una instrucción compuesta que contenga una declaración.
Estructuras Iterativas
Las instrucciones de repetición, de iteración o bucles, facilitan la repetición de un bloque de
instrucciones, un número determinado de veces o mientras se cumpla una condición.
Por lo general, existen dos tipos de estructuras iterativas o bucles en los lenguajes de programación.
Encontraremos un tipo de bucle que se ejecuta un número preestablecido de veces, que es
controlado por un contador o índice, incrementado en cada iteración. Este tipo de bucle forma parte
de la familia for.
Por otro lado, encontraremos un tipo de bucle que se ejecuta mientras se cumple una condición.
Esta condición se comprueba al principio o el final de la construcción. Esta variante pertenece a la
familia while or repeat, respectivamente.
Por último, siempre podemos consultar los comandos de control del flujo mediante ?Control en la
consola de RStudio.
Instrucción Iterativa
Una instrucción iterativa o repetitiva, también conocida como bucle, tiene la misión de ejecutar las
mismas instrucciones de código una y otra vez mientras que se cumpla una determinada condición.
Se llama ciclo a la secuencia de sentencias que se repiten en un bucle.
Una instrucción iterativa requiere de una serie de componentes o instrucciones para su correcto
funcionamiento. Dichas componentes, expresadas en pseudocódigo, son:

 La Inicialización es el conjunto de instrucciones que se ejecutan para inicializar las


variables que participan de la iteración.
 MIENTRAS-HACER es la instrucción iterativa. Ejecutará el cuerpo, lo contenido entre las
llaves, siempre que la expresión booleana sea cierta.
 El Cuerpo es el conjunto de instrucciones que se ejecutan mientras que se cumpla la
expresión booleana. Es imprescindible que en el cuerpo haya alguna instrucción que
modifique para el siguiente ciclo la expresión booleana (de no modificarse nunca, el bucle
no tendría fin).
 La finalización es el conjunto de instrucciones que se ejecutarán cuando la iteración
termina.
Trucos, consejos y errores comunes
Al trabajar con sentencias iterativas hay ciertos errores muy comunes y recurrentes, tener en cuenta
esta lista te ayudará a entenderlos y no cometerlos.
Cuerpo del bucle vacío
El cuerpo de bucle puede estar formado por ninguna instrucción, es decir, puede estar vacío. Esto,
que puede parecer extraño, el compilador no lo detecta como un error, puesto que no es un error
sintáctico sino de lógica.
Mira este ejemplo:
while (num !=0);
{
printf(“El doble de %d es %d\n”, num, num*2);
scanf(“%d”, &num);
}

Si te fijas después de la condición del while hay un punto y coma. Esto significa que el bucle acaba
allí, y por lo tanto no hay ninguna instrucción a ejecutar. El resultado de este bucle es que nunca
acabaría ya que num no se modifica nunca.
Por lo tanto, ojo con los puntos y coma.
Bucles que nunca acaban
En el anterior error común ya hemos visto que un bucle con while en el que al final hemos puesto
un ; por error, no acabaría.
Otra causa habitual de que el bucle no acabe es que se nos olvide incrementar la variable contador
dentro del bucle. Recuerda el ejemplo de la tabla de multiplicar. Si dentro del bucle no hubiésemos
puesto la sentencia i=i+1, el bucle no acabaría nunca (escribiría infinitas veces “7 x 0 = 0”).

Condiciones mal escritas


También son habituales los errores en las condiciones de entrada al bucle, especialmente cuando se
trata de condiciones compuestas. Fíjate en esta posible solución al ejercicio 2 que se ha propuesto
antes:
void main()
{
int num,res;
scanf(“%d”, &num);
while ((num !=0) || (res < 100))
{
res = num*2;
printf(“El doble de %d es %d\n”, num, res);
scanf(“%d”, &num);
}
printf (“Fin del programa\n”);
}
Recuerda que el bucle debe para cuando num sea 0 o el doble del último número leído del teclado
sea
mayor que 100. ¿Ves dónde está el error?
Una iteración de más o una iteración de menos
Este tipo de error suele provenir porque muchas veces no tenemos en cuenta el primer y el último
caso que debe tratar el bucle. Éstos son casos especiales y tendremos que tratarlos como tales.
Por ejemplo, el siguiente programa pretende calcular la potencia y x
void main()
{
int res, x,y, i;

scanf(“%d %d”, &y, &x);


if (y==0)
printf(“La potencia es 1\n”);
else
{
res = y;
i = 0;
while (i<=x)
{
res = res * y;
i = i+1;
}
printf (“La potencia es %d\n”, res);
}
}

Solucionar problemas con bucles: debugger


La mejor manera de solucionar los problemas de los bucles es utilizar el debugger. Es una
herramienta
básica para cualquier programador y muy útil para detectar estos errores.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy