Flujo de ejecución

Mecanismos de flujo y organización de código


En nuestro código de programación, en líneas generales, el flujo del programa, se lee desde arriba hacia abajo, y de izquierda a derecha. De esta forma, y siempre por norma general, se procesa primero el código que está a la izquierda y arriba, actuando de forma secuencial, ya que cuando termina un primer bloque o línea de código, se comienza con el siguiente.

Flujo secuencial

Este mecanismo es de los más sencillos y básicos, y a medida que vamos escribiendo código se puede complicar, o introducir variaciones que hacen que este flujo se vuelva más complejo.

Nombre Descripción
Condiciones Bifurcaciones donde el flujo se divide en dos o más caminos.
Bucles Repeticiones de un código idéntico varias veces o hasta cumplir una condición.
Funciones Fragmento de código que realiza una tarea, abstrayendo información.
Anidación Fragmentos o bloques de código dentro de otros.
Estructuras de datos Lugares o «compartimentos» donde podemos guardar información.

Condicionales

Los condicionales, condiciones o bifurcaciones son fragmentos de código donde se establece una cierta condición para evaluar si realizar un bloque de código u otro. De esta forma, tenemos un bloque de código (en verde) que sólo se realizará si se cumple la condición, saltando el bloque rojo y continuando el programa, o un bloque de código (en rojo) que sólo se realiza si no se cumple la condición, saltando el bloque verde y continuando el programa:

Flujo condicional

Las condiciones pueden ser algo más complejas, o incluso tener expresiones que deben ser evaluadas. Las explicaremos más adelante.

Bucles

Los bucles, ciclos o estructuras de repetición, son bloques especiales de código que se ejecutarán varias veces (de 0 a un número concreto de veces) dependiendo de una condición. Esto nos ahorra el tener que repetir código muchas veces, y hace que el programa sea más pequeño y más fácil de leer y escribir.

El flujo de un bucle es el siguiente:

  1. Evaluar y determinar si una condición es cierta o falsa
  2. Si es cierta, ejecuta el bloque de código, realiza un cambio relacionado con la condición y vuelve a 1.
  3. Si es falsa, sale del bucle y continua el programa.

Flujo de repetición (bucles)

Cada una de las repeticiones que realiza es un concepto que se denomina iteración o vuelta.

Funciones

A medida que escribimos código en nuestra aplicación, es muy común que nos encontremos con que hay partes del código que se repiten y/o se parecen mucho a otras (o directamente son idénticas). Existe un concepto llamado función que básicamente lo que permite es aislar un fragmento de código y darle un nombre. De esta forma, cada vez que llamemos a ese nombre, se aplicará el fragmento de código. Esto reduce sustancialmente el código de nuestra aplicación y lo hace mucho más fácil de leer y entender.

Funciones

Las funciones son mucho más complejas, pero esto es un buen punto de partida para entenderlas. Más adelante las explicaremos en profundidad.

Anidación

Otro concepto que conviene conocer es el denominado anidación o anidamiento. Cuando hablamos de un código anidado significa que tenemos un fragmento de código «dentro» de otro. Por ejemplo, imaginemos que tenemos un condicional que a su vez, tiene dentro otro condicional. En ese caso estaríamos hablando un condicional anidado. Si tenemos un bucle con otro bucle en su interior, estaríamos hablando de un bucle anidado.

Anidación

También es interesante conocer el nivel de anidamiento, ya que en los casos mencionados sólo hay 2 niveles, pero podríamos hablar de niveles superiores de anidación donde por ejemplo tenemos 3 condicionales anidados o más.

Aunque ya lo veremos más adelante, hay que tener cuidado con las anidaciones, ya que pueden complicar nuestro programa, y en algunos casos hacerlo menos eficiente. Lo hablaremos en profundidad en próximos temas.

Estructuras de datos

Por último, y no por ello menos importante, tenemos las denominadas estructuras de datos. Cuando programamos, de forma habitual necesitamos guardar información en nuestro programa, y a priori no conocemos dicha información porque variará dependiendo del usuario. Por ejemplo, imagina un programa que pregunta el nombre al usuario. En un caso podría ser Juan, en otro caso podría ser Sara, y en otro podría ser Pancracio.

Es por ello, que necesitamos utilizar ciertas estructuras de datos (compartimentos) para almacenar dicha información y usarla en nuestro programa de forma abstracta o genérica. Estos compartimentos se identificarán en nuestro programa mediante un nombre identificativo, sin mencionar el valor que contienen directamente.

Más adelante veremos los diferentes tipos de estructuras de datos que existen, ya que algunos se adaptan mejor que otros para almacenar la información, dependiendo de lo que necesitemos.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev