t6 - construcciones iterativas

18
Tema – 6 Construcciones iterativas

Upload: daniel-santiago-martinez

Post on 27-Jun-2015

917 views

Category:

Education


10 download

DESCRIPTION

Construcciones iterativas

TRANSCRIPT

Page 1: T6 - Construcciones iterativas

Tema – 6Construcciones iterativas

Page 2: T6 - Construcciones iterativas

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

PROGRAMACIÓN – Daniel Santiago 3

6.2. While

• Sintaxis:

while (condición){ sentencia;

}

Page 4: T6 - Construcciones iterativas

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

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

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

PROGRAMACIÓN – Daniel Santiago 7

6.3. Do-while

• Sintaxis:

do{grupo_de_sentencias;

} while (condición);

Page 8: T6 - Construcciones iterativas

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

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

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

PROGRAMACIÓN – Daniel Santiago 11

6.4. For

• Sintaxis:

for(sentencia_inicial;condición; incremento/decremento){ grupos_de_sentencias;

}

Page 12: T6 - Construcciones iterativas

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

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

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

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

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

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

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++;}