Estructuras de control java

Icono play
Java
Estructuras de control

Las estructuras de control de flujo son de uso constante en la gran mayoría de programas de informática, nos permiten desarrollar aplicaciones más complejas y con más funcionalidades.

Básicamente la programación se centra en acciones secuenciales y las estructuras de control vienen a ayudarnos a manipular ese accionar secuencial.

Seguro habrás escuchado a algún profesor preguntar “¿Qué es lo primero que haces en la mañana?” y la respuesta clásica es “Me levanto, me lavo la cara y luego desayuno”, pues bien, eso es una secuencia de acciones, una después de la otra, de hecho lo primero que aprendemos en los inicios de programación es a dividir en pequeños pasos la totalidad de una acción.

La secuencialidad de acciones es la estructura básica de un programa, pero también hay otras estructuras que nos permiten modificar o alterar el curso del mismo.

Estas otras estructuras de control son: 

  • Estructura condicional o selectiva
  • Estructura iterativa o repetitiva 
  • Estructura de corte o salto.

Java cuenta además de la clásica y sencilla estructura secuencial, con las estructuras de decisión, las estructuras de iteración y las estructuras de corte.

La estructura secuencial en Java

Secuencial es la estructura donde las instrucciones o sentencias de un programa, se ejecutan en el orden en que fueron escritas, una debajo de la otra, comenzando desde arriba y yendo hacia abajo y de izquierda a derecha, como si leyéramos un libro.

Cada bloque de nuestro código seguirá de manera secuencial su ejecución.

Ejemplo:

//Estructura secuencial

public class Main {

    
    public static void main(String[] args) {

        
        int num1 = 3;

        
        int num2 = 5;

        
        int suma = num1 + num2;

        
        System.out.println("La suma de los dos numeros es: " + suma);

        
        System.out.println("Hola Programador");


    }

}

La salida en pantalla de este programa es:

La suma de los dos números es: 8

Hola Programador

Estructuras de decisión, condicional o selectiva en Java

Las estructuras de decisión son aquellas que nos permiten modificar la ejecución secuencial de un programa dependiendo del resultado de la expresión de evaluación que le hayamos impuesto a la estructura condicional.

De la respuesta a esa evaluación (generalmente verdadero o falso) dependerá que parte del bloque se ejecutará y que parte no.

Las estructuras condicionales o de decisión son:

if: Es una función que evalúa una condición y dependiendo de si la respuesta es verdadera o falsa, ejecutará una porción u otra del código.

Ejemplo:

//Estructura condicional if simple

public class Main {
    
    public static void main(String[] args) {
        
        float temp =  18.5 f;
    
        if (temp > 18) {

            System.out.println("El clima está templado");

        }

    }

}

La salida en pantalla de este programa es:

El clima está templado

En caso de que la temperatura fuera menor a la condición dada, el programa no hará nada.

if-else: Es similar a if, pero con un camino alternativo en caso de que la condición evaluada sea falsa.

Ejemplo:

//Estructura condicional if -else

public class Main {

    public static void main(String[] args) {

        float temp = 12.5 f;

        if (temp > 18) {

            System.out.println("El clima esta templado");
            
        } else {
        
            System.out.println("El clima esta fresco");
        }
    }
}

La salida en pantalla de este programa es:

El clima está fresco

if-else if: Cumple la misma función que un if -else, pero nos da la oportunidad de chequear varias condiciones, y ejecutar el código de acuerdo al resultado de esas opciones.

Ejemplo:

//Estructura condicional if -else if, chequea varias opciones antes de decidir.

public class Main {

    
    public static void main(String[] args) {

        float temp =  16.3 f;

        if (temp >= 25) {

            System.out.println("El clima está caluroso");

        } else if (temp < 25  && temp > 14) {

            System.out.println("El clima está templado");
        
        } else {
            System.out.println("El clima está fresco");
    
        }
    }

}

La salida en pantalla de este programa es:

El clima está templado

switch: En esta sentencia definimos múltiples opciones posibles y con el switch ejecutamos el bloque asociado a la opción seleccionada o ingresada, si esta opción no está definida se ejecuta el bloque default y se sale del switch para continuar con el resto de las sentencias. Es una alternativa simple y prolija a los if anidados que pueden volverse muy complejos de entender.

Ejemplo:

//Estructura condicional switch.

public class switchsentencia {
    public static void main(String[] args) {
        int moneda = 4;

        switch (moneda) {

            case 1:
                    System.out.println("La moneda ingresada es Euro");
                break;

            case 2:
                    System.out.println("La moneda ingresada es Dolar");
                break;

            case 3:
                    System.out.println("La moneda ingresada es Real");
                break;

            case 4:
                    System.out.println("La moneda ingresada es Libra");
                break;

            default:
                    System.out.println("Moneda no registrada");
        }
    }
}

La salida en pantalla de este programa es:

La moneda ingresada es Libra

Estructuras de repetición, ciclos o iterativas en Java

Las estructuras iterativas se caracterizan por ejecutar de forma repetitiva una instrucción o bloque de instrucciones de tal manera que las mismas se realicen hasta cumplir una determinada condición previamente declarada, esta condición se conoce como salida del bucle.

Las estructuras repetitivas, cíclicas o iterativas son:

  • for
  • for each
  • while
  • do while

for: La estructura for es del tipo bucle, en ella conocemos de antemano la cantidad de veces que se ejecutará este bloque, la finalización del mismo la controla un contador que cuando se cumple el número de veces definido previamente, solo sale del bucle.

Cuenta con un valor inicial, un valor de finalización y un incremento de la variable de control.

 Ejemplo:

//Estructura iterativa simple

public class estructurafor {

    public static void main(String[] args) {

        for (int i = 1; i <=  6; i++) {

            System.out.print("" + i + ",");
        }
    }
}

La salida en pantalla de este programa es:

1,2,3,4,5,6

for each: Esta estructura es del tipo constructor, lo que permite iterar en arrays y objetos, tiene la capacidad de leer todo el contenido de un array, aunque no puede recorrer una cadena de texto caracter por caracter como si lo hace el for simple.

A diferencia del for simple no precisamos una condición o valor de finalización, el bloque terminará su ejecución en el momento que haya recorrido todo el array.

Además tiene la ventaja de que su uso reduce las líneas de código.

Ejemplo:

//Estructura for-each constructor.

public class estructuraforeach {

    public static void main(String[] args) {

        System.out.print("La lista de autos es: \n");

        String[] marcas = new String[]{
            "Volvo",
            "BMW",
            "Ford",
            "Mazda"
        };

        for (String cars: marcas) {

            System.out.println(cars);

        }
    }
}

La salida en pantalla de este programa es:

La lista de autos es:

  • Volvo
  • BMW
  • Ford
  • Mazda

while: En este ciclo se define una condición de evaluación y la sentencia se ejecutará mientras esa condición sea verdadera, en el while la condicionalidad se comprueba al inicio del bloque por lo que las instrucciones pueden ejecutarse o no dependiendo de la certeza o falsedad de la condición dada.

Ejemplo:

//Estructura while, iterativa condicional.

public class estructurawhile {

    public static void main(String args[]) {

        int contador = 9;

        while (contador > 1) {

            System.out.println("El numero es " + contador);

            contador = contador - 3;

        }
        System.out.println("Programa finalizado, el contador está en " + contador);
    }
}

La salida en pantalla de este programa es:

El número es 9

El número es 6

El número es 3

Programa finalizado, el contador está en 0

do-while: Este bloque de código es muy similar al while, la diferencia es que la condición se evalúa al finalizar la última sentencia del bloque, lo que permite que el bucle se ejecute al menos una vez.

Ejemplo:

//Estructura do- while, iterativa condicional.

public class estructuradowhile {

    public static void main(String args[]) {

        int valorcarta = 2;

        do {

            System.out.println("La carta vale " + valorcarta + ". Mientras el valor de la carta sea mayor o igual a 2, yo juego" );

            valorcarta = valorcarta - 1;

        } while (valorcarta > 2);

        System.out.println("El valor de la carta es " + valorcarta + ",ya no sigo jugando");

    }

}

La salida en pantalla de este programa es:

La carta vale 2. Mientras el valor de la carta sea mayor o igual a 2, yo juego

El valor de la carta es 1,ya no sigo jugando

Podemos observar que la primera vez se ejecuta el código, en la segunda al cambiar la condición, ya no se vuelve a ejecutar.

Estructuras de salto o corte en Java

Además de las estructuras de control que hemos visto hasta ahora, existen las estructuras de corte o salto, que como su nombre lo indica, provocan una interrupción del flujo normal de las instrucciones, tanto que sea una salida abrupta del ciclo (for, while, do-while, switch) como es el caso de break, como si solo fuese saltear algunas instrucciones y continuar con otras como en el caso del continue. Más información sobre Break y Continue.

Break en Java

La instrucción break finaliza de forma abrupta la ejecución de un bucle, saliendo completamente de él, en el caso de estructuras repetitivas anidadas, saldrá del bloque que la contiene, pero seguirá ejecutándose el resto del programa.

Continue en Java

En el caso del continue, esta sentencia lo que hace es detener la iteración actual y volver al principio del bucle, para que se ejecuten las sentencias siguientes.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: