Estructuras de control iterativas

Anuncio
Práctica 6
Estructuras de control iterativas
Fundamentos de Programación
Departamento de Lenguajes y Sistemas Informáticos
Versión 1.2.1
Estructuras de control iterativas
Existen 3 tipos de estructuras de control:



Secuencial: un bloque de sentencias ({…})
Alternativa: sirven para seleccionar un bloque a ejecutar
Iterativa: sirven para repetir las sentencias de un bloque
Las estructuras iterativas se denominan comúnmente bucles
Cada repetición de la sentencias de un bloque se denomina
iteración
Toda estructura puede contener cualquier conjunto de
instrucciones
PR6: Estructuras de control iterativas
Estructuras de control: sentencia while

Ejecuta el bloque de sentencias mientras la condición
evalúa a cierta
while (condición)
{
sentencia-1;
sentencia-2;
...
sentencia-n;
}
Falsa
condición
Cierta
sentencia-1
sentencia
sentencia-2
...
sentencia
sentencia-n
PR6: Estructuras de control iterativas
Estructuras de control: sentencia while

Ejemplo: suma de los n primeros naturales
public static Integer sumaNaturales(Integer n) {
Integer cuenta = 1;
Integer suma = 0;
while(cuenta<=n) {
suma = suma + cuenta;
cuenta++;
}
return suma;
}
PR6: Estructuras de control iterativas
Estructuras de control: sentencia for


Se empieza ejecutando la inicialización (INI) y evaluando la
condición (CON)
Mientras la condición evalúe a cierta
se ejecuta el bloque de sentencias
inicialización
y la actualización (ACT)
for (INI; CON; ACT)
{
sentencia-1;
sentencia-2;
...
sentencia-n;
}
condición
actualización Cierta
sentencia-1
sentencia
sentencia-2
...
sentencia
sentencia-n
PR6: Estructuras de control iterativas
Estructuras de control: sentencia for

Ejemplo: sumar los elementos de un array de enteros
public static Integer sumaElementos(Integer[ ] v) {
Integer suma = 0;
for(int i=0; i<v.length; i++)
suma+= v[i];
return suma;
}
PR6: Estructuras de control iterativas
Estructuras de control: equivalencias
Dado un array elems de un tipo T:
for
for (int i=0; i<elems.length; i++)
{
T e = elems[i];
sentencia-1;
…
sentencia-n;
}
PR6: Estructuras de control iterativas
while
int i = 0;
while (i<elems.length) {
T e= elems[i];
sentencia-1;
…
sentencia-n;
i++;
}
Consideraciones
Todo bucle es una sentencia de la forma:
palabra_reservada (EXPRESIÓN) {
// Bloque de instrucciones o estructura secuencial
}
Si el bloque contiene una única instrucción, las llaves { } no
son necesarias.
En un bucle while la expresión es SIEMPRE de tipo lógico.
El número de iteraciones de un bucle for viene dado por el
valor inicial (INI), el valor final (CON) y el incremento
(ACT) de la variable ligada.
PR6: Estructuras de control iterativas
Descargar