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