Saltar al contenido

Estructuras de control de flujo en la programación informática.

Las estructuras de control de flujo son herramientas que permiten modificar el orden de ejecución de un programa. En cualquier lenguaje de programación, las instrucciones se ejecutan de arriba hacia abajo de manera secuencial, pero con estas estructuras podemos:

  • Tomar decisiones y ejecutar distintos bloques de código según condiciones. Esto lo haremos a través de las estructuras condicionales y estructuras de selección, if-else, switch.
  • Repetir instrucciones varias veces con el uso de bucles como for, while, do-while o foreach.
  • Alterar el flujo de ejecución saltando o terminando bloques de código a través de estructuras de salto como break, continue, return.

Las estructuras de control de flujo se dividen en tres tipos principales:

  • Estructuras condicionales (selección).
  • Estructuras de repetición (bucles o iteración).
  • Estructuras de salto y control de flujo.
Índice de contenidos

    Tipos de estructuras de control de flujo.

    Estructuras condicionales (selección).

    Este tipo de estructuras de control permiten ejecutar diferentes bloques de código dependiendo de una condición.

    Estructura condicional if – else.

    La estructura if permite evaluar una condición. En este caso, se ejecutará un bloque de código si se cumple dicha condición. En caso de la la condicióni no se cumpla, se puede usar else para ejecutar otro bloque de código alternativo.

    Esta es la sintaxis general de esta estructura:
    if (condición) {
        // Código a ejecutar si la condición es verdadera
    } else {
        // Código a ejecutar si la condición es falsa
    }
    

    Ejemplos de la estructura if en C#, java, python y Visual Basic.

    C#:
    int edad = 18;
    if (edad >= 18)
    {
        Console.WriteLine("Eres mayor de edad.");
    }
    else
    {
        Console.WriteLine("Eres menor de edad.");
    }
    
    Java:
    int edad = 18;
    if (edad >= 18) {
        System.out.println("Eres mayor de edad.");
    } else {
        System.out.println("Eres menor de edad.");
    }
    
    Python:
    edad = 18
    if edad >= 18:
        print("Eres mayor de edad.")
    else:
        print("Eres menor de edad.")
    
    Visual Basic.
    Dim edad As Integer = 18
    If edad >= 18 Then
        Console.WriteLine("Eres mayor de edad.")
    Else
        Console.WriteLine("Eres menor de edad.")
    End If
    

    Estructura condicional if – else – if.

    La estructura if – else – if permite evaluar varias condiciones al mismo tiempo.

    Sintaxis general de la estructura if -else – if.
    if (condición) {
        // Código a ejecutar si la condición es verdadera
    } else {
        // Código a ejecutar si la condición es falsa
    }
    
    C#.
    int temperatura = 30;
    if (temperatura > 30)
    {
        Console.WriteLine("Hace calor.");
    }
    else if (temperatura < 15)
    {
        Console.WriteLine("Hace frío.");
    }
    else
    {
        Console.WriteLine("El clima es templado.");
    }
    
    Java.
    int temperatura = 30;
    if (temperatura > 30) {
        System.out.println("Hace calor.");
    } else if (temperatura < 15) {
        System.out.println("Hace frío.");
    } else {
        System.out.println("El clima es templado.");
    }
    
    Python.
    temperatura = 30
    if temperatura > 30:
        print("Hace calor.")
    elif temperatura < 15:
        print("Hace frío.")
    else:
        print("El clima es templado.")
    
    Visual Basic.
    Dim temperatura As Integer = 30
    If temperatura > 30 Then
        Console.WriteLine("Hace calor.")
    ElseIf temperatura < 15 Then
        Console.WriteLine("Hace frío.")
    Else
        Console.WriteLine("El clima es templado.")
    End If
    

    Estructura Switch – case (select – case).

    Podemos utilizar esta estructura de control como alternativa a la estructura if – else, cuando tenemos varios casos posibles o cuando una variable pueda tomar varios valores.

    Sintaxis general de la estructura switch en programación.
    switch (variable) {
        case valor1:
            // Código si variable == valor1
            break;
        case valor2:
            // Código si variable == valor2
            break;
        default:
            // Código si no se cumple ninguna opción
    }
    
    C#.
    char letra = 'B';
    switch (letra)
    {
        case 'A':
            Console.WriteLine("Letra A");
            break;
        case 'B':
            Console.WriteLine("Letra B");
            break;
        default:
            Console.WriteLine("Otra letra");
            break;
    }
    
    Java.
    char letra = 'B';
    switch (letra) {
        case 'A':
            System.out.println("Letra A");
            break;
        case 'B':
            System.out.println("Letra B");
            break;
        default:
            System.out.println("Otra letra");
    }
    
    Python.

    Desde la versión 3.10 de python, se usa la estructura match-case.

    dia = 3
    
    match dia:
        case 1:
            print("Lunes")
        case 2:
            print("Martes")
        case 3:
            print("Miércoles")
        case _:
            print("Día no válido.")
    
    Visual Basic.
    Dim letra As Char = "B"c
    Select Case letra
        Case "A"c
            Console.WriteLine("Letra A")
        Case "B"c
            Console.WriteLine("Letra B")
        Case Else
            Console.WriteLine("Otra letra")
    End Select
    

    Estructuras iterativas o bucles en programación.

    Estas estructuras de control, permiten repetir un bloque de código varias veces.

    Estructura While.

    Con el bucle while en programación repetiremos una serie de instrucciones mientras se cumpla una condición concreta.

    Sintaxis general del buble While.
    int i = 0;
    while (condicion)
    {
        //instrucciones
        //cambio de condición
    }
    
    C#:
    int i = 0;
    while (i < 5)
    {
        Console.WriteLine(i);
        i++;
    }
    
    Java:
    int i = 0;
    while (i < 5) {
        System.out.println(i);
        i++;
    }
    
    Python:
    i = 0
    while i < 5:
        print(i)
        i += 1
    
    Visual basic.
    Dim i As Integer = 0
    While i < 5
        Console.WriteLine(i)
        i += 1
    End While
    

    Bucle Do – While.

    Este tipo de bucles o estructuras de control, ejecutan un bloque de código mientras se cumpla una condición. Podemos traducir este bucle como, «hacer ciertas instrucciones mientras se cumpla una condición.

    Sintaxis general del bucle do – while.
    int i = 0;
    do //hacer....
    {
        //instrucción
    } while (condicion);  
    
    C#:
    int i = 0;
    do
    {
        Console.WriteLine(i);
        i++;
    } while (i &lt; 5);
    
    Java:
    int i = 0;
    do {
        System.out.println(i);
        i++;
    } while (i < 5);
    
    Visual Basic:
    Dim i As Integer = 0
    Do
        Console.WriteLine(i)
        i += 1
    Loop While i < 5
    
    Python:

    Python no tiene do-while, se usa la estructura de control while True con las estructura de salto break.

    El bucle while y do – while en programación, también lo llamamos bucles indeterminados.

    Estructura o bucle for en programación.

    El bucle for se utiliza cuando se conoce de antemano el número de iteraciones. Tiene una sintaxis que consta de tres partes:

    • Inicialización: Se establece una variable de control.
    • Condición: Se evalúa antes de cada iteración; si es true, se ejecuta el bloque de código.
    • Incremento/Decremento: Se modifica la variable de control en cada iteración.
    Sintaxis general del bucle for.
    for (inicio de la variable; condicion; incremento de la variable)
    {
        //instrucción a repetir
    }
    
    C#:
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine(i);
    }
    
    Java:
    for (int i = 0; i < 5; i++) {
        System.out.println(i);
    }
    
    Python:
    for i in range(5):
        print(i)
    
    Visual basic:
    For i As Integer = 0 To 4
        Console.WriteLine(i)
    Next
    

    Estructura o bucle foreach en programación.

    El bucle foreach se usa para recorrer elementos de una colección (arrays, listas, etc.) sin necesidad de manejar índices manualmente. Se recomienda para estructuras de datos en las que solo queremos acceder a los elementos sin modificar el índice.

    Sintaxis general del bucle foreach.

    Aunque puede cambiar levemente, la estructura general de esta estructura de control es la siguiente.

    foreach (variable objeto in objetos)
    {
       // instrucciones
    }
    
    C#:
    string[] nombres = { "Ana", "Luis", "Carlos" };
    
    foreach (string nombre in nombres)
    {
        Console.WriteLine("Nombre: " + nombre);
    }
    
    Java:

    En este lenguaje, el bucle foreach también se llama for mejorado.

    String[] nombres = { "Ana", "Luis", "Carlos" };
    
    for (String nombre : nombres) {
        System.out.println("Nombre: " + nombre);
    }
    
    Python:
    nombres = ["Ana", "Luis", "Carlos"]
    
    for nombre in nombres:
        print(f"Nombre: {nombre}")
    
    Visual basic:
    Dim nombres As String() = {"Ana", "Luis", "Carlos"}
    
    For Each nombre As String In nombres
        Console.WriteLine("Nombre: " & nombre)
    Next
    

    Estructuras de control de salto en programación.

    Las estructuras de salto en programación permiten alterar el flujo normal de ejecución de un programa. Se usan para salir de bucles, saltar iteraciones o finalizar la ejecución de un método o función.

    Las estructuras de salto más comunes son:

    • break.
    • continue.
    • return.
    • goto (solo en algunos lenguajes).

    Estructura de salto break.

    La sentencia break se usa para salir inmediatamente de un bucle (for, while, do-while) o de una estructura switch cuando se cumple una determinada condición.

    C#:
    for (int i = 0; i < 10; i++)
    {
        if (i == 5)
            break; // Sale del bucle cuando i es 5
    
        Console.WriteLine("Valor de i: " + i);
    }
    
    Java:
    for (int i = 0; i < 10; i++) {
        if (i == 5)
            break; // Rompe el bucle cuando i es 5
    
        System.out.println("Valor de i: " + i);
    }
    
    Python:
    for i in range(10):
        if i == 5:
            break  # Sale del bucle cuando i es 5
        print(f"Valor de i: {i}")
    
    Visual Basic:
    For i As Integer = 0 To 9
        If i = 5 Then
            Exit For ' Rompe el bucle cuando i es 5
        End If
        Console.WriteLine("Valor de i: " & i)
    Next
    

    Estructura continue.

    La sentencia continue omite la iteración actual y pasa a la siguiente dentro de un bucle.

    C#:
    for (int i = 0; i < 10; i++)
    {
        if (i == 5)
            continue; // Salta la iteración cuando i es 5
    
        Console.WriteLine("Valor de i: " + i);
    }
    
    Java:
    for (int i = 0; i < 10; i++) {
        if (i == 5)
            continue; // Omite la iteración donde i es 5
    
        System.out.println("Valor de i: " + i);
    }
    
    Python:
    for i in range(10):
        if i == 5:
            continue  # Salta la iteración donde i es 5
        print(f"Valor de i: {i}")
    
    Visual Basic:
    For i As Integer = 0 To 9
        If i = 5 Then
            Continue For ' Salta la iteración cuando i es 5
        End If
        Console.WriteLine("Valor de i: " & i)
    Next
    

    Estructura goto.

    La sentencia goto permite saltar a una etiqueta específica dentro del código. Su uso no es recomendado ya que puede generar lo que llamamos código spaguetti.. Esta estructura de control de salto no está disponible en Java ni en Python debido a que se considera una mala práctica.

    C#:
    int i = 0;
    
    inicio:
    Console.WriteLine("Valor de i: " + i);
    i++;
    
    if (i < 5)
        goto inicio; // Vuelve a la etiqueta "inicio"
    
    Visual Basic:
    Dim i As Integer = 0
    
    Inicio:
    Console.WriteLine("Valor de i: " & i)
    i += 1
    
    If i < 5 Then
        GoTo Inicio ' Salta de nuevo a la etiqueta "Inicio"
    End If
    

    Estructura return.

    La sentencia return se usa para finalizar una función o método y devolver un valor opcional o un tipo de dato.

    C#:
    int Sumar(int a, int b)
    {
        return a + b; // Devuelve la suma de a y b
    }
    
    Console.WriteLine(Sumar(3, 4)); // Imprime 7
    
    Java:
    int sumar(int a, int b) {
        return a + b; // Retorna la suma de a y b
    }
    
    System.out.println(sumar(3, 4)); // Imprime 7
    
    Python:
    def sumar(a, b):
        return a + b  # Retorna la suma de a y b
    
    print(sumar(3, 4))  # Imprime 7
    
    Visual Basic:
    Function Sumar(a As Integer, b As Integer) As Integer
        Return a + b ' Devuelve la suma de a y b
    End Function
    
    Console.WriteLine(Sumar(3, 4)) ' Imprime 7
    

    Tabla comparativa de las estructuras de control en programación.

    Tipo Estructura C# Java Python Visual Basic
    Condicionales if-else
    if-else if-else
    switch / match-case ✅ switch ✅ switch ✅ match (Python 3.10+) ✅ Select Case
    Bucles while
    for ✅ (range()) ✅ (For … To)
    foreach / for-each ✅ foreach ✅ for-each ✅ (for-in) ✅ For Each
    Control de flujo break ✅ (Exit)
    continue
    return
    Configuración