Estructuras de control en Java

1. Información general

En el sentido más básico, un programa es una lista de instrucciones. Las estructuras de control son bloques de programación que pueden cambiar la ruta que tomamos a través de esas instrucciones.

En este tutorial, exploraremos las estructuras de control en Java.

Hay tres tipos de estructuras de control:

  • Ramas condicionales, que usamos para elegir entre dos o más caminos. Hay tres tipos en Java: if / else / else if , operador ternario y switch .
  • Bucles que se utilizan para iterar a través de múltiples valores / objetos y ejecutar repetidamente bloques de código específicos. Los tipos de bucle básicos en Java son for , while y do while .
  • Sentencias de ramificación, que se utilizan para alterar el flujo de control en bucles. Hay dos tipos en Java: romper y continuar .

2. Si / Else / Else If

La declaración if / else es la estructura de control más básica, pero también puede considerarse la base misma de la toma de decisiones en la programación.

Si bien if se puede usar solo, el escenario de uso más común es elegir entre dos rutas con if / else :

if (count > 2) { System.out.println("Count is higher than 2"); } else { System.out.println("Count is lower or equal than 2"); }

Teóricamente, podemos encadenar o anidar infinitamente bloques if / else , pero esto dañará la legibilidad del código, y por eso no se recomienda.

Exploraremos declaraciones alternativas en el resto de este artículo.

3. Operador ternario

Podemos usar un operador ternario como expresión abreviada que funciona como una declaración if / else .

Veamos nuestro ejemplo if / else de nuevo:

if (count > 2) { System.out.println("Count is higher than 2"); } else { System.out.println("Count is lower or equal than 2"); }

Podemos refactorizar esto con un ternario de la siguiente manera:

System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");

Si bien ternary puede ser una excelente manera de hacer que nuestro código sea más legible, no siempre es un buen sustituto de if / else.

4. Cambiar

Si tenemos varios casos para elegir, podemos usar una declaración de cambio .

Veamos de nuevo un ejemplo sencillo:

int count = 3; switch (count) { case 0: System.out.println("Count is equal to 0"); break; case 1: System.out.println("Count is equal to 1"); break; default: System.out.println("Count is either negative, or higher than 1"); break; }

Tres o más declaraciones if / else pueden ser difíciles de leer. Como una de las posibles soluciones, podemos usar el interruptor, como se vio arriba.

Y también tenga en cuenta que el interruptor tiene limitaciones de alcance y entrada que debemos recordar antes de usarlo.

5. Bucles

Usamos bucles cuando necesitamos repetir el mismo código varias veces seguidas.

Veamos un ejemplo rápido de bucles for y while comparables :

for (int i = 1; i <= 50; i++) { methodToRepeat(); } int whileCounter = 1; while (whileCounter <= 50) { methodToRepeat(); whileCounter++; } 

Ambos bloques de código anteriores llamarán a methodToRepeat 50 veces.

6. Descanso

Necesitamos usar break para salir temprano de un bucle.

Veamos un ejemplo rápido:

List names = getNameList(); String name = "John Doe"; int index = 0; for ( ; index < names.length; index++) { if (names[index].equals(name)) { break; } }

Aquí, estamos buscando un nombre en una lista de nombres y queremos dejar de buscar una vez que lo hayamos encontrado.

Normalmente, un bucle se completa, pero hemos utilizado la interrupción aquí para cortocircuitarlo y salir antes.

7. Continuar

En pocas palabras, continuar significa omitir el resto del ciclo en el que estamos:

List names = getNameList(); String name = "John Doe"; String list = ""; for (int i = 0; i < names.length; i++) { if (names[i].equals(name)) { continue; } list += names[i]; }

Aquí, omitimos agregar los nombres duplicados a la lista.

Como hemos visto aquí, romper y continuar puede ser útil al iterar, aunque a menudo se pueden reescribir con declaraciones de retorno u otra lógica.

8. Conclusión

En este artículo rápido, aprendimos qué son las estructuras de control y cómo usarlas para administrar el control de flujo en nuestros programas Java.

Todo el código presentado en este artículo está disponible en GitHub.