TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
1. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
Jaaaaaaaaaaaa
Desarrollo de Aplicaciones Web con J2EE
2. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
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
3. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
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 (CommandButton) que saldrá con el nombre por defecto
de Command1. Haga doble click sobre el botón. Aparecerá el procedimiento Click. Este procedimiento es el
4. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
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 while
Sentencia while
Es 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;]
}
5. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
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) {
doublecantidadInicial=1; Programación orientada a objetos con Java 75
double cantidad=cantidadInicial;
doubleinteres=4;
intanhos=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 Duplica
La cantidad inicial es = 1.0
El interes es = 4.0
La cantidad final es = 2.025816515378531
El 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
6. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
El bucle for
Es un bucle o sentencia repetitiva que
1) ejecuta la sentencia de inicio
2) 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érmino
b. 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 (inti =0 ; i<= 10; i++) {
System.out.println(5 + " * " + i + " = " + 5*i );
}
Salida por pantalla al ejecutar el código anterior:
5 * 0 = 0
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
7. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 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) {
doublecantidadInicial=1;
double cantidad=cantidadInicial;
doubleinteres=5;
intanhos=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);
System.out.println("El numero de años es = " + anhos);
8. Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
}
}
Ejemplo de ejecución y salida correspondiente por pantalla: Programación orientada a objetos con
Java 77
La cantidad inicial es = 1.0
El interés es = 5.0
La cantidad final es = 2.0789281794113683
El número de años es = 15.0