¿Qué son las estructuras de salto?
Las estructuras de salto son instrucciones que alteran el flujo normal de ejecución de un programa. En Java, las estructuras de salto más comunes son break
, continue
, las etiquetas de salto, y la sentencia return
. Aunque generalmente se recomienda evitar el uso excesivo de estas estructuras debido a que pueden hacer que el código sea más difícil de entender y mantener, hay casos donde su uso es útil y necesario.
1. Sentencia break
La sentencia break
se utiliza para terminar inmediatamente una estructura de control, como un bucle (for
, while
, do-while
) o una sentencia switch
.
Funcionamiento:
- Dentro de un bucle: Si aparece un
break
en el cuerpo de un bucle (comofor
,while
,do-while
), el bucle se detendrá inmediatamente, incluso si la condición de terminación del bucle no ha sido alcanzada. - Dentro de un
switch
: Si se coloca unbreak
dentro de unswitch
, se saldrá delswitch
y el programa continuará ejecutando las instrucciones que se encuentren después de la estructura. - Bucle anidado: Si el
break
está dentro de un bucle anidado, solo se terminará el bucle más interno. El resto de bucles exteriores continuará ejecutándose normalmente.
Ejemplo:
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // Sale del bucle cuando i es igual a 5
}
System.out.println(i);
}
Salida:
0
1
2
3
4
En este caso, el bucle se detendrá cuando i
sea igual a 5 debido al break
.
2. Sentencia continue
La sentencia continue
se utiliza para saltear la iteración actual de un bucle y pasar directamente a la siguiente iteración, sin ejecutar las instrucciones restantes en el cuerpo del bucle.
Funcionamiento:
- Dentro de un bucle: Al encontrar un
continue
, el flujo de control del programa salta el resto de las instrucciones dentro del bucle y vuelve a evaluar la condición del bucle para determinar si se debe ejecutar otra iteración. - Bucle anidado: Si el
continue
está dentro de un bucle anidado, solo afectará al bucle más interno, es decir, continuará con la siguiente iteración de ese bucle, pero no afectará a los bucles exteriores.
Ejemplo:
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // Salta las iteraciones en las que i es par
}
System.out.println(i);
}
Salida:
1
3
5
7
9
En este caso, el continue
hace que se salten las iteraciones donde i
es un número par, por lo que solo se imprimen los números impares.
3. Sentencia return
La sentencia return
se utiliza para finalizar la ejecución de un método y, en algunos casos, devolver un valor.
Funcionamiento:
- Terminar un método: Si se coloca un
return
dentro de un método, la ejecución de ese método se detendrá inmediatamente y el control del programa se transferirá al punto donde se invocó el método. - Devolver un valor: En métodos que no sean de tipo
void
, se puede devolver un valor mediantereturn
. El valor retornado debe ser compatible con el tipo definido en la cabecera del método.
Ejemplo (sin valor de retorno):
public void saludar() {
System.out.println("Hola");
return; // Finaliza el método
System.out.println("Esto no se imprimirá");
}
Salida:
Hola
En este caso, el return
hace que el método termine después de imprimir “Hola”, por lo que la línea "Esto no se imprimirá"
nunca se ejecutará.
Ejemplo (con valor de retorno):
public int sumar(int a, int b) {
return a + b; // Retorna la suma de a y b
}
Aquí, el método sumar
retorna la suma de a
y b
, que luego puede ser utilizada en el código que llama al método.