Hola querido lector y entusiasta de la programación. En este post te mostrare las estructuras de control que son la base para la programación estructurada. Las condiciones y los ciclos. Para hablar de este tema no tomare ningún lenguaje en concreto, es mas dare ejemplos de varios lenguajes y me referiré a los conceptos basado en el teorema de programación estructurada, teniendo siempre presente que estas estructuras de control existen o se pueden recrear en cualquier lenguaje de programación.

Estructuras condicionales o de selección

Este tipo de estructuras ejecuta un bloque de código dependiendo de una o varias condiciones.

Condición simple

Iniciamos con esta estructura de control, ya que es la mas usada, sencilla y fácil de entender.

Lo que permite esta estructura es hacer una evaluación simple, retornando como respuesta un valor (falso o verdadero)

IF (Condición) THEN
    (Código que se ejecutara si se cumple la condición)
ELSE
    (Código que se ejecutara si no se cumple la condición)
END IF

[plantuml]

(*) –> “Inicio”

if “condicion” then
–>[true] “Hacer esto si es verdadero”

-right-> (*)

else
->[false] “Si no esto”
–>[Finalizar] (*)
endif

[/plantuml]

Los siguientes son ejemplos de una condición simple, con opción de ejecución en caso de que la condición sea verdadera o falsa (IF ELSE), ya que podemos hacer la estructura mas sencilla solo validando la condición y no hacer nada en caso de que no se cumpla la condición (IF) ya que la instrucción ELSE es opcional.

Para el ejemplo vamos a utilizar dos variables y vamos a suponer que tienen asignado un valor numérico. el objetivo es validar si la primera variable es mayor a la segunda.

Para los ejemplos utilizare los lenguajes que yo mas utilizo, si quieres preguntar por algún otro o quieres comentar con tu ejemplo, déjalo al finalizar el post en los comentarios.

Nota: Tampoco mostrare las condiciones “inline” ya que esto sera tema para otra ocasión al ser un poco mas complejo.

if($a > $b){
    echo $a;
} 
else {
    echo $b;
}
if(a > b){
    Console.WriteLine(a.ToString());
}
else {
    Console.WriteLine(b.ToString());
}
if a > b:
    print a
else:
    print b
if(a > b){
    console.log(a);
}
else {
    console.log(b);
}

Estas condiciones simples se pueden volver mas complejas, a medida que agregamos mas condiciones. Ademas se pueden anidar una dentro de otra, miremos un ejemplo en pseudocodigo

IF (Condición 1) THEN
    (Código si condición 1)
ELSEIF (Condición 2) THEN
    (Código si condición 2)
ELSEIF (Condición 3) THEN 
    (Código si condición 3)
ELSE
    (Código si ninguna de las condiciones se cumplió)
END IF

Selección

Para evitar hacer varias condiciones simples anidadas se creo el control de selección, que se utiliza para escoger una opción dependiendo de una condición.

Select (Expresión)
    Case Valor1
        (Código que se ejecuta si Expresión = Valor1)
    Case Valor2
        (Código que se ejecuta si Expresión = Valor2)
    Case Valor n
        (Código que se ejecuta si Expresión = Valorn)
    Case Else
        (Código que se ejecuta si Expresión no coincidió con ningun valor anterior)
End Select

Veamos los ejemplos de este control con algunos lenguajes. Hay una particularidad con Python, y es que no tiene por defecto el control switch, pero lo podemos recrear con varios IF ELSE o con un diccionario, como esta en el ejemplo.

[plantuml]

(*) –> “Inicio”

if “condicion1” then
–>[true] “Hacer esto si la concicion1 se cumple”

-right-> (*)

else
if “condicion 2” then
-left-> “Hacer esto si la concicion2 se cumple”
else
–> “Si no haga esto”

endif

–> (*)

endif

[/plantuml]

switch ($i) {
    case 0:
        echo "i es igual a 0";
        break;
    case 1:
        echo "i es igual a 1";
        break;
    case 2:
        echo "i es igual a 2";
        break;
    default:
        echo "i no es igual a 0, 1 ni 2";
}
switch (i)
{
    case 0:
        Console.WriteLine("i es igual a 0");
        break;
    case 1:
        Console.WriteLine("i es igual a 1");
        break;
    case 2:
        Console.WriteLine("i es igual a 2");
        break;
    default:
        Console.WriteLine("i no es igual a 0, 1 ni 2");
        break;
}
switch = {
    0: "i es igual a 0",
    1: "i es igual a 1",
    2: "i es igual a 2"
}

print switch.get(i, "i no es igual a 0, 1 ni 2")
switch (i) {
    case 0:
        console.log(i es igual a 0);
        break;
    case 1:
        console.log(i es igual a 1);
        break;
    case 2:
        console.log(i es igual a 2);
        break;
    default:
        console.log("i no es igual a 0, 1 ni 2");
}

Estructuras iterativas o de bucles

Estas estructuras repiten un fragmento de código N veces, dependiendo de la condición que se este efectuando. Mientras la condición se cumpla el control ejecutara el código, una vez la condición deje de ser cierta sale del ciclo.

Hay algunos tipos de estructuras que no voy a ejemplificar aquí, como lo son el do-while y el do-until, ya que en psudocodigo y en la teoría son estructuras diferentes, pero en los lenguajes modernos son las estructuras que pasare a mencionar, pero con algunos cambios en las condiciones que hace que se comporten de la manera deseada.

Ciclo PARA - REPETIR

Este control tiene la característica que desde el inicio se le pude indicar cuantas repeticiones debe hacer, al hacerlo de esta manera creamos una estructura de control Para(FOR), es decir con un numero definido de iteraciones. Si la validación la hacemos al final se convierte en un ciclo repetir, en donde la condición se valida al final (este también se puede trabajar con la estructura de control mientras, que la veremos después de esta).

FOR i=0 a 10, STEP = 1
    (Ejecutar código)
END FOR

A continuación para los ejemplos de código imprimiremos los números de 1 a 10

[plantuml]

start
repeat
:codigo a repetir;
repeat while (se repite?)
stop

[/plantuml]

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}
for (int i = 1; i <= 10; i++)
{
    Console.WriteLine(i);
}
for x in range(1, 11):
    print(x)
for (let i = 1; i <= 10; i++)
{
    console.log(i);
}

Ciclo MIENTRAS

Este ciclo espera siempre una respuesta de una condición, ejecuta un bloque de código mientras que el resultado de la validación de la condición sea verdadera.

WHILE (Condición)
    (Bloque de código a ejecutar)
END WHILE

Al igual que el anterior ejemplo, imprimiremos los números de 1 a 10 y damos por hecho que la variable i  = 1 

[plantuml]

start
while (Quiero ejecutar codigo)
:Hacer este codigo;
endwhile
stop

[/plantuml]

while ($i <= 10) {
    echo $i++; 
}
while (i <= 10)
{
    Console.WriteLine(i);
    i++;
}
while (i <= 10):
    print i
    i = i + 1
while (i <= 10)
{
    console.log(i);
    i = i + 1;
}

Hasta aquí ha llegado este post, espero que lo hallas disfrutado mucho y te halla sido de mucha ayuda, muy educativo e interesante. No olvides compartirlo, déjame tus comentarios y dudas, hasta la próxima.

[DISPLAY_ULTIMATE_PLUS]