Download - T6 - Construcciones iterativas
![Page 1: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/1.jpg)
Tema – 6Construcciones iterativas
![Page 2: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/2.jpg)
PROGRAMACIÓN – Daniel Santiago 2
6.1. Introducción
• En este capítulo se verán los mecanismos que Java ofrece para la ejecución repetida de sentencias (bucles), bien un número prefijado de veces, bien dependiendo de cierta condición.
• Java cuenta con las siguientes construcciones iterativas:– While– Do-while– For
![Page 3: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/3.jpg)
PROGRAMACIÓN – Daniel Santiago 3
6.2. While
• Sintaxis:
while (condición){ sentencia;
}
![Page 4: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/4.jpg)
PROGRAMACIÓN – Daniel Santiago 4
6.2. While
• Las sentencias que están dentro del bucle (cuerpo del bucle) se ejecutan mientras se cumpla la condición (sea cierta). En el momento en que sea falsa, la ejecución del programa continúa secuencialmente con la siguiente instrucción detrás del bucle.
![Page 5: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/5.jpg)
PROGRAMACIÓN – Daniel Santiago 5
6.2. While• Ejemplo:
import java.io.*;public static void main(String args[]) throws Exception{
int num=0, cont=0, suma=0, media=0;InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);System.out.println(“Escriba el primer número de la serie:”);num = Integer.parseInt(br.readLine());while(num != -1){ cont++; suma = suma + num; System.out.println(“Escriba el siguiente número de la serie:”); num = Integer.parseInt(br.readLine());}if (cont<=0) System.out.println(“serie vacia”);else{ media = suma/cont; System.out.println(“la media es: ” + media);}
}
![Page 6: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/6.jpg)
PROGRAMACIÓN – Daniel Santiago 6
6.2. While
• Aspectos importantes:– Inicialización de las variables.– En el cuerpo del bucle hay instrucciones que
cambian el valor de variables que aparecen en la condición. Así podremos salir del bucle.
– Un bucle se ejecuta entre 0 y N veces.– La condición del bucle no tiene por qué ser una
expresión lógica (x--, x!=0…)
![Page 7: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/7.jpg)
PROGRAMACIÓN – Daniel Santiago 7
6.3. Do-while
• Sintaxis:
do{grupo_de_sentencias;
} while (condición);
![Page 8: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/8.jpg)
PROGRAMACIÓN – Daniel Santiago 8
6.3. Do-while
• El funcionamiento es parecido al del bucle while, salvo que en do-while se ejecuta primero el cuerpo del bucle y después se evalúa la condición.
![Page 9: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/9.jpg)
PROGRAMACIÓN – Daniel Santiago 9
6.3. Do-while• Ejemplo:
include java.io.*;public static void main(String args[]) throws Exception{int num=0, cont=0, suma=, media=0;InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);do{ System.out.println(“Escriba el primer número de la serie:\t”); num = Integer.parseInt(br.readLine()); cont++; suma = suma + num;} while(num != -1);if (cont<=0) System.out.println(“serie vacia”);else{ media = suma/cont; System.out.println(“la media es: ” + media);}}
![Page 10: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/10.jpg)
PROGRAMACIÓN – Daniel Santiago 10
6.3. Do-while
• Generalmente se utilizan los bucles while y do-while cuando se desconoce las veces que se va a ejecutar (iteraciones).
![Page 11: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/11.jpg)
PROGRAMACIÓN – Daniel Santiago 11
6.4. For
• Sintaxis:
for(sentencia_inicial;condición; incremento/decremento){ grupos_de_sentencias;
}
![Page 12: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/12.jpg)
PROGRAMACIÓN – Daniel Santiago 12
6.4. For
• Sentencia_inicial: suele ser una sentencia de asignación con la que se inicializa una variable que se usará como contador del número de iteraciones del bucle. Esta sentencia se ejecuta una única vez antes de entrar en el bucle.
• Condición: indica cuándo finaliza el bucle. Se evalúa cada vez que se va a entrar en el cuerpo del bucle, y según se cierta o falsa, se ejecutará en el bucle o no.
• Incremento/decremento: generalmente afectará a la variable de control, y se ejecuta después de cada ejecución del cuerpo del bucle.
![Page 13: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/13.jpg)
PROGRAMACIÓN – Daniel Santiago 13
6.4. For• Ejemplo:
include java.io.*;public static void main(String args[]) throws Exception{int n, i, suma = 0;InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);System.out.println(“Indique cuántos números consecutivos desea sumar:”);n = Integer.parseInt(br.readLine());for(i=0; i <= n; i++){suma = suma + i;}System.out.println(“la suma de “ + n + “números es ” + suma);}
![Page 14: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/14.jpg)
PROGRAMACIÓN – Daniel Santiago 14
6.4. For
• Las tres partes de la cabecera del for son opcionales, pero los “;” son obligatorios.
• Ejemplo:for(;1;){
grupo_de_sentencias;}//bucle infinito
![Page 15: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/15.jpg)
PROGRAMACIÓN – Daniel Santiago 15
6.4.1. Operador “,”
• Java permite la utilización de más de una sentencia en la primera y tercera parte de la construcción for, así como más de una condición en la segunda parte.
• Ejemplo:for(i=0, j=10 ; i<10, j>0; i++, j-=2){
grupo_de_sentencias;}
![Page 16: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/16.jpg)
PROGRAMACIÓN – Daniel Santiago 16
6.4.1. Operador “,”
• En el ejemplo anterior, las variables i y j se inicializan a 0 y 10 al principio del bucle. En la segunda parte aparecen dos condiciones (i<10, j>0). Si alguna de ellas es falsa, la ejecución del bucle para. Finalmente, tras ejecutar el cuerpo del bucle, se incrementa la variable i en 1 y se decrementa la variable j en 2. En este punto, vuelven a comprobarse las condiciones…
![Page 17: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/17.jpg)
PROGRAMACIÓN – Daniel Santiago 17
6.4.1. Equivalencia for-while
• En Java los bucles for y while actúan de una manera muy similar. Es posible pasar un bucle for a un bucle while de la siguiente forma:
sentencia_inicial;while(condición){
sentencia;incremento/decremento;
}
![Page 18: T6 - Construcciones iterativas](https://reader036.vdocuments.co/reader036/viewer/2022082514/558e6b441a28ab94028b462b/html5/thumbnails/18.jpg)
PROGRAMACIÓN – Daniel Santiago 18
6.4.1. Equivalencia for-while
• Ejemplo de bucles equivalentes:for(i=0; i<=n; i++){ sentencia;}
i = 0;while(i<=n){ sentencia; i++;}