>>
Lección 05


Control del flujo en Java.
(condicionales y ciclos)


Como ya hemos dicho, la sintaxis de Java es muy parecida a la del C++. Esto se aplica tanto a la escritura de variables y operadores como al control del flujo de los programas, es decir, la escritura de cláusulas condicionales y bucles o ciclos.

Aquí aparece el código de un sencillo programa que ilustra el uso de la cláusula condicional

if (condición) { instrucciones } else { instrucciones }

y una instrucción de ciclo o repetición

for ( inicio; condición ; cambio )

Estos son los dos mecanismos más utilizados para el control del flujo.

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Casi toda la programación en Java se realiza con estas dos cláusulas.

Hay otra cláusula condicional que es útil para evitar el uso de muchas cláusulas if cuando la condición es una comparación de una variable de tipo byte, char, short, int o long, con valores constantes. Se llama switch y se usa así:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Aparte del for, hay otras dos instrucciones de ciclo o repetición:

while (condición) { instrucciones }

y

do { instrucciones } while (condición);

El uso de estas instrucciones se ilustra en los programas flujowhile y flujodo:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

En cualquier bloque de instrucciones encerrado entre llaves {} ya sea dentro de un for, un while, un do, tras un if o un else, dentro de un switch o simplemente porque se han escrito las llaves para definir ese bloque de instrucciones, se pueden usar las instrucciones break o continue. La instrucción break hace que dejen de ejecutarse las instrucciones del resto del bloque y si es el bloque de un ciclo, se termina el ciclo. continue también hace que se dejen de ejecutar las instrucciones del bloque pero el ciclo continúa en el siguente paso.

El programa etiquetas ilustra el comportamiento de break y continue con y sin etiquetas.

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Pruebe a ejecutar este programa pasándole varios parámetros incluyendo alguna de las palabras break, continue, break1, break2, continue1 y continue2 para ver qué hace en cada caso.


Excepciones en Java.


Algunos métodos arrojan excepciones. Las excepciones son una manera cómoda y muy útil de tratar las anomalías previsibles en el funcionamiento de un programa, y Java incopora un sencillo mecanismo para tratarlas.

Cuando un método se encuentra con una situación que le impide terminar su trabajo, arroja una excepción. El programador puede (y normalmente debe) controlar esas excepciones.

El control de excepciones en Java se hace utilizando una construcción gramatical especial,

try { instrucciones } catch(Exception e) { instrucciones }

Este programa, llamado existe,  ilustra cómo se aplica esta construcción para investigar cuáles archivos de una lista existen y cuáles no, aprovechando que el constructor de RandomAccesFile arroja una excepción de tipo IOException cuando se le pasa el nombre de uno que no existe.

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Hay otra instrucción parecida

try { instrucciones } finally { instrucciones }

que sirve para ejecutar un bloque de instrucciones antes de salir del otro, independientemente de cómo se hizo la salida. Éste es un ejemplo.

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Se pueden usar construcciones compuestas como

try {
    ...
} catch (Exception e) {
    ...
} finally {
    ...
}

o aún más complejas como:

try {
    ...
} catch (type1Exception e1) {
    ...
} catch (type2Exception e2) {
    ...
}
...
} catch (typenException en) {
    ...
} finally {
    ...
}

En esta útlima, si el código indicado por los puntos que siguen al bloque del try arroja una excepción de tipo type2Exception, entonces se ejecuta el código correspondiente y de cualquier manera, haya una excepción o no, el código de finally siempre se ejecuta. Este tipo de construcciones es muy útil para el manejo de excepciones en programas complejos.

Hay una larga lista de clases que son las excepciones del lenguaje Java. Cada paquete tiene varias de estas clases. En general su estructura es muy sencilla y consta sólo de constructores que se usan al generar la excepción, para indicar, mediante un número o una cadena, en qué consiste la anomalía. Cuando se recibe una excepción e con catch, basta usar el método e.toString() para obtener información sobre la excepción. El programador puede crear sus propias excepciones si lo estima conveniente.

No usaremos mucho las excepciones en las primeras 7 lecciones del curso, sin embargo, en las lecciones 8 y 9 serán fundamentales.


Índice

Ejercicios de la Lección 05.


José Luis Abreu y Marta Oliveró