tema nº 7: sentencias de control de flujo en java ii

9
Desarrollo de Aplicaciones Web con J2EE Jaaaaaaaaaaaa Ing. Pablo Cesar Ttito C. [email protected] Desarrollo de Aplicaciones Web con J2EE

Upload: anyeni-garay

Post on 29-Jun-2015

191 views

Category:

Education


3 download

TRANSCRIPT

Page 1: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

Jaaaaaaaaaaaa

Ing. Pablo Cesar Ttito [email protected]

Desarrollo de Aplicaciones Web con J2EE

Page 2: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Sentencias de Bucle

Es muy común utilizar bucles a lo largo de un programa. Un bucle es una sucesión repetitiva de instrucciones, que se estarán realizando mientras se cumpla una condición o mientras no se cumpla otra condición. Es tan sencillo como esto:

Mientras condición

Instrucciones

Fin del bucle

Existen dos formas de bucle: Una, que realiza un número determinado de recorridos por el bucle. Es el denominado bucle por contador. Otra, realiza el bucle hasta que se cumpla (o deje de cumplirse) una condición. Es el llamado bucle por condición.

1:BUCLE POR CONTADOR

Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a presentar las 26 letras mayúsculas del alfabeto inglés

For N=65 To 90

Label1.caption = Chr ( N )

Next N

Este "programa" nos presentará en una caja (Label) los caracteres cuyo número ASCII vaya desde el 65 (A) al 90 (Z) Comenzará presentando el correspondiente al número 65, e irá presentando sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se parará.

2:BUCLES POR CONDICIÓN

Ejecuta las instrucciones del bucle mientras se cumple una condición

X = 0

Do While X < 1000

X = X + 1

Loop

Ing. Pablo Cesar Ttito [email protected]

Page 3: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

El programa toma una variable ( X ) que previamente tuvimos la curiosidad de ponerla a cero, e incrementa su valor una unidad. Analiza si el valor de X es menor que 1000, y si es cierto, vuelve a realizar el bucle. Así hasta que X ya no sea menor que 1000. Al dejar de cumplirse que X sea menor que 1000, sale del bucle. Acabamos de realizar un temporizador, y también de exponer las sentencias condicionales y los bucles, inicio de cualquier curso de Basic. Como final de lección, se propone un problema. Con el primer bucle, donde visualizábamos los caracteres A a la Z, posiblemente no nos diese tiempo de ver cada una de las letras que iban apareciendo en la pantalla, en la etiqueta Label1, dado que cambiaría con mucha velocidad, y solamente veríamos la Z, que es donde se detuvo el programa. Podemos poner un temporizador cada vez que presente una letra, y así nos dará tiempo a verla. Con los dos bucles vistos anteriormente ya podemos hacerlo.

Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada condición, la sentencia será:

X = 0

Do Until X > 1000

X = X + 1

Loop

Observe que la diferencia entre una y otra es la condición, While para indicar Mientras se cumpla que ... y Until para indicar Mientras no se cumpla que ....

Para terminar bien el programa anterior utilizaremos la condición de While (Mientras se cumpla la condición)

For N=65 To 90

Label1.caption = Chr ( N )

Label1.RefreshN ' Refresca la etiqueta

X = 0

Do While X < 1000

X = X + 1

Loop

Next N

Este es nuestro primer programa en BASIC. En VISUAL BASIC es idéntico, pero nos falta la interface gráfica. Para realizarla basta con abrir el VB y sobre el formulario que aparece al abrirlo, introducir una etiqueta, (Label) que llevará el nombre por defecto de Label1. Solo nos queda pensar donde introducimos el código anterior. Podemos introducir un botón de comando (Command Button) que saldrá con el nombre por defecto de Command1. Haga doble click sobre el botón. Aparecerá el procedimiento Click. Este

Ing. Pablo Cesar Ttito [email protected]

Page 4: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

procedimiento es el que se realiza cuando hacemos click sobre ese botón. Escriba en ese procedimiento este código.

Private Sub Command1_Click() ' Esta línea sale automáticamente

For N=65 To 90

Label1.caption = Chr ( N )

Label1.RefreshN ' Refresca la etiqueta

X = 0

Do While X < 1000 ' Bucle de temporización

X = X + 1

Loop

Next N ' Termina el bucle de temporización

End Sub ' Esta línea sale automáticamente

El bucle whileSentencia whileEs un bucle o sentencia repetitiva con una condición al principio. Se ejecuta una sentencia Mientras sea cierta una condición. La sentencia puede que no se ejecute ni una sola vez.

Sintaxis:

[inicializacion;]while (expresionLogica) {sentencias; [iteracion;]}

Ing. Pablo Cesar Ttito [email protected]

Page 5: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

Ejemplo de programa:/** * Ejemplo de sentencia while * Calcula cuantos años deben pasar para duplicar una cantidad * invertida a un determinado interes anual constante * A. Garcia-Beltran - marzo, 2004*/public class Duplica {public static void main (String [] args) {double cantidadInicial=1; Programación orientada a objetos con Java 75 double cantidad=cantidadInicial; double interes=4; int anhos=0;while (cantidad < 2*cantidadInicial) { anhos++; cantidad += cantidad*interes/100;} System.out.println("La cantidad inicial es = " + cantidadInicial); System.out.println("El interes es = " + interes); System.out.println("La cantidad final es = " + cantidad); System.out.println("El numero de años es = " + anhos); }}

Ejemplo de ejecución y salida correspondiente por pantalla:

$>java DuplicaLa cantidad inicial es = 1.0El interes es = 4.0La cantidad final es = 2.025816515378531El numero de años es = 18.0

Por convención: El carácter de llave de apertura { se coloca al final de la misma línea de la sentencia while. El carácter de llave de cierre } empieza una nueva línea y se alinea con la palabra while

Ing. Pablo Cesar Ttito [email protected]

Page 6: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

El bucle forEs un bucle o sentencia repetitiva que1) ejecuta la sentencia de inicio2) verifica la expresión booleana de término.a. si es cierta, ejecuta la sentencia entre llaves y la sentencia de iteración para volver a verificar la expresión booleana de términob. si es falsa, sale del bucle.

Sintaxis: for (inicio; termino; iteracion)sentencia;

o si se desean repetir varias sentencias:

for (inicio; termino; iteracion) {sentencia_1;sentencia_2;sentencia_n; }

Las llaves sólo son necesarias si se quieren repetir varias sentencias, aunque se recomienda su uso porque facilita la lectura del código fuente y ayuda a evitar errores al modificarlo. Habitualmente, en la expresión lógica de término se verifica que la variable de control alcance un determinado valor. Por ejemplo:for (i = valor_inicial; i <= valor_final; i++) {sentencia;}

Es completamente legal en Java declarar una variable dentro de la cabecera de un bucle for. De esta forma la variable (local) sólo tiene ámbito dentro del bucle. Ejemplo sencillo:

System.out.println("Tabla de multiplicar del 5");for (int i =0 ; i <= 10; i++) {System.out.println(5 + " * " + i + " = " + 5*i );}

Salida por pantalla al ejecutar el código anterior:5 * 0 = 05 * 1 = 55 * 2 = 10

Ing. Pablo Cesar Ttito [email protected]

Page 7: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

5 * 3 = 155 * 4 = 205 * 5 = 255 * 6 = 305 * 7 = 355 * 8 = 405 * 9 = 455 * 10 = 50

El bucle do-while

Es un bucle o sentencia repetitiva con una condicion al final. Se ejecuta una sentencia mientras sea cierta una condición. En este caso, la sentencia se ejecuta al menos una vez.Sintaxis:do {sentencias; [iteracion;]} while (expresionLogica);

Ejemplo de programa:

/** * Ejemplo de sentencia do-while * Calcula cuantos años deben pasar para duplicar una cantidad * invertida a un determinado interes anual constante * A. Garcia-Beltran - marzo, 2004*/public class Duplica2 {public static void main (String [] args) {double cantidadInicial=1; double cantidad=cantidadInicial; double interes=5; int anhos=0;do{ anhos++; cantidad += cantidad*interes/100;} while (cantidad < 2*cantidadInicial); System.out.println("La cantidad inicial es = " + cantidadInicial); System.out.println("El interes es = " + interes); System.out.println("La cantidad final es = " + cantidad);

Ing. Pablo Cesar Ttito [email protected]

Page 8: TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II

Desarrollo de Aplicaciones Web con J2EE

System.out.println("El numero de años es = " + anhos); }}Ejemplo de ejecución y salida correspondiente por pantalla: Programación orientada a objetos con Java 77

La cantidad inicial es = 1.0El interés es = 5.0La cantidad final es = 2.0789281794113683El número de años es = 15.0

Ing. Pablo Cesar Ttito [email protected]