Las estructuras de control

Las estructuras de control en Java son básicamente las misma que en C, con excepción del goto, que no existe (al fin un lenguaje serio! )

if…[else]

La más común de todas, permite ejecutar una instrucción (o secuencia de instrucciones) si se da una condición dada (o, mediante la cláusula else, ejecutar otra secuencia en caso contrario).

if (expresión_booleana) instrucción_si_true;
[else instrucción_si_false;]

o bien:

	if (expresión_booleana) {
		instrucciones_si_true;
	}
	else {
		instrucciones_si_false;
	}

Por ejemplo:

	public final String toString() {
		if (y<0)
			return x+"-i"+(-y);
		else
			return +x+"+i"+y;
	}

Switch…case…brake…default

Permite ejecutar una serie de operaciones para el caso de que una variable tenga un valor entero dado. La ejecución saltea todos los case hasta que encuentra uno con el valor de la variable, y ejecuta desde allí hasta el final del case o hasta que encuentre un break, en cuyo caso salta al final del case. El default permite poner una serie de instrucciones que se ejecutan en caso de que la igualdad no se de para ninguno de los case.

	switch (expresión_entera) {
		case (valor1): instrucciones_1;
				[break;]
		case (valor2): instrucciones_2;
				[break;]
		…..
		case (valorN): instrucciones_N;
				[break;]
		default: instrucciones_por_defecto;
	}

Por ejemplo:

	switch (mes) {
		case (2):	if (bisiesto()) dias=29;
			else dias=31;
			break;
	case (4):
	case (6):
	case (9):
	case (11):	dias = 30;
			break;
	default:	dias = 31;
	}

While

Permite ejecutar un grupo de instrucciones mientras se cumpla una condición dada:

	while (expresión_booleana) {
		instrucciones…
	}

Por ejemplo:

while ( linea != null)  {
linea = archivo.LeerLinea();
System.out.println(linea);
}

Do…while

Similar al anterior, sólo que la condición se evalúa al final del ciclo y no al principio:

	do {
		instrucciones…
	} while (expresión_booleana);


Por ejemplo:

do {
linea = archivo.LeerLinea();
if (linea != null) System.out.println(linea);
} while (linea != null);

For

También para ejecutar en forma repetida una serie de instrucciones; es un poco más complejo:

	for ( instrucciones_iniciales; condición_booleana; instruccion_repetitiva_x ) {
		instrucciones…
	}

Si bien las instrucciones pueden ser cualquiera (el bucle se repite mientras la condición sea verdadera), lo usual es utilizarlo para "contar" la cantidad de veces que se repiten las instrucciones; se podría indicar así:

	for ( contador = valor_inicial; contador < valor_final; contador++ ) {
		instrucciones…
	}

Por ejemplo:

	for ( i=0; i<10; i++ ) {
		System.out.println( i );
	}

o, para contar hacia atrás:

	for ( i=10; I>0; I-- ) {
		System.out.println( i );
	}

Break y continue

Estas instrucciones permiten saltar al final de una ejecución repetitiva (break) o al principio de la misma (continue).

Por ejemplo, en:

import java.io.*;
class Bucles {
    public static void main (String argv[ ]) {
	int i=0;
for (i=1; i<5; i++) {
	System.out.println("antes "+i);
	if (i==2) continue;
	if (i==3) break;
	System.out.println("después "+i);
}
    }
}


La salida es:

antes 1

después 1

antes 2

antes 3

Por qué? "i" comienza en 1 (imprime "antes" y "después"); cuando pasa a 2, el continue salta al principio del bucle (no imprime el "después"). Finalmente, cuando "i" vale 3, el break da por terminado el bucle for.

Otras...

Hay otras instrucciones que controlan el flujo del programa:

synchronized (para ver junto con los threads)
catch,
throw,
try,
finally (para ver con las excepciones)

Ahora sí, podemos usar todo nuestro conocimiento sobre Java para ir creando algunas aplicaciones y de paso ir viendo las bibliotecas estándar... Nos vemos en el capítulo VI!

<> Página de tutoriales <> Página Anterior <> Siguiente Capitulo <>