martes, 4 de julio de 2017

Estructuras de salto en Java



En Java existen dos sentencias que permiten modificar el flujo secuencial de un programa y provocan un salto en la ejecución. Estas sentencias son break y continue. Ambas se utilizan con las estructuras de repetición para interrumpir la ejecución con break o volver al principio con continue.
Además, el break se utiliza para interrumpir la ejecución de un switch.

Sentencia break
La sentencia break se utiliza para interrumpir la ejecución de una estructura de repetición o de un switch. Cuando se ejecuta el break, el flujo del programa continúa en la sentencia inmediatamente posterior a la estructura de repetición o al switch.


Sentencia continue
La sentencia continue únicamente puede aparecer en una estructura de repetición. Cuando se ejecuta un continue, se deja de ejecutar el resto del bloque de sentencias de la estructura iterativa para volver al inicio de ésta.

Uso de break y continue
A continuación se muestran ejemplos del uso de las sentencias break y
continue.

Ejemplo de uso de break en un switch:
Desarrolle un programa que cuente el número de vocales, consonantes y espacios de una cadena de caracteres.
Utilice un for para comparar cada una de las letras de la frase. Dentro del for utilice un switch para seleccionar entre vocales, consonantes y espacios. Las variables vocales, consonantes y espacios se inicializan a cero y se utilizan para contar el número de veces que aparecen en la frase.
Defina una variable letra de tipo char. Almacene la letra correspondiente a la posición i de la cadena de caracteres. Utilice el método charAt(i) de la clase String para copiar el valor de este carácter a la variable letra.
Utilice la sentencia break al final del bloque de sentencias de los case correspondientes a vocales, espacios y consonantes.

public class ConsonantesVocales {
public static void main(String[] args) {
String frase = "Hola Mundo";
char letra;
int vocales = 0, consonantes = 0, espacios = 0;
for (int i=0; i<frase.length(); i++) {
letra = frase.charAt(i);
switch (letra) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': vocales++;
break;
case ' ': espacios++;
break;
default: consonantes++;
break;
}
}
System.out.println("La frase '" + frase + "' tiene " +
vocales + " vocales, " +
consonantes + " consonantes y " +
espacios + " espacios. ");
}
}


Ejemplo de uso de break en un do-while:
Modifique el programa de los números aleatorios desarrollado en el ejemplo de uso de un do-while.
Incluya un break que interrumpa el do-while cuando el número aleatorio sea igual a 25.
El programa debe terminar cuando el número aleatorio sea 25 o 50.

public class NumerosAleatoriosConBreak {
public static void main(String[] args) {
// este programa muestra números enteros aleatorios
// entre 0 y 100 hasta que sale el 25 o el 50
do {
numero = (int) (100 * Math.random());
System.out.println("Número aleatorio: " + numero);
if (numero == 25)
break;
} while (numero != 50);
}
}


Ejemplo de uso de continue en un for:
Desarrolle un programa que muestre por consola los números pares entre 2 y 10. 
Utilice un for para valores de i de 1 a 10 y aplique la sentencia continue para interrumpir la ejecución de las iteraciones impares.

public class NumerosPares {
public static void main(String[] args) {
for (int i=1; i<=10; i++) {
if (i % 2 != 0)
continue; //el número es impar, se interrumpe la iteración
System.out.println("Números pares: " + i);
}
}

}