Estructuras condicionales (if-else)

PortadaEstructuraPrograma

En la sesión anterior vimos un poco acerca del flujo del programa, vimos como podemos tener código que sólo se ejecuta una vez, y también hay código que se repite constantemente. En esta ocasión trataremos con estructuras condicionales, son elementos fundamentales y utilizando estas estructuras se puede dar más inteligencia a nuestro código.

Anterior tutorial

Las estructuras condicionales nos permitirán tener una mayor flexibilidad al poder elegir la forma en que se ejecuta nuestro código.

La primera estructura condicional que veremos es el if-else, esta estructura permite ejecutar una o varias instrucciones si cierta condición se cumple, en otro caso podemos ejecutar otras instrucciones. Será como tener la posibilidad de tener dos caminos.

Para saber si la condición se cumple utilizaremos operadores lógicos, comenzaremos con el operador de igualdad, el cuál se escribe con un doble igual “==” y su función es comparar dos elementos y ver que sean iguales. Ya habíamos utilizado anteriormente el signo “=” para asignar valores a variables, debemos tener cuidado, “==” significa comparación, “=” significa asignación.

// Estructura del if-else

if(condicion == verdadera){
   //instruccion1;
   //instruccion2;
   //instruccion3;
}
else{
   //instruccion4;
   //instruccion5;
}

Vamos a hacer un código de ejemplo, en la sesión pasada vimos que con los bloques “setup” y “draw” podemos elegir que código se ejecuta repetidamente, lo siguiente que haremos es que un círculo se desplace de izquierda a derecha pero ahora haremos que cambie de color a la mitad de la trayectoria. En este caso no ocuparemos el bloque else, es opcional usarlo.

int posicion = 0;

void setup(){
   //instrucciones que se ejecutan sólo una vez
   size(500,500);   // Tamaño del canvas
   background(255,255,255);   // Color de fondo del canvas
   fill(255,0,0);   // Color de relleno de figura
   stroke(255,0,0);   // Color de trazo de figura
}

void draw(){
   //instrucciones que se ejecutan repetidamente
   posicion = posicion + 1;   // Esta instrucción mueve 1px al ellipse

   // Estructura condicional if
   if(posicion == 250){
      // Cuando posicion tenga el valor de 250
      // se cambiará el color de relleno a azul.
      fill(0,0,255);
   }

   background(255,255,255);   // Limpiar fondo de pantalla
   ellipse(posicion,250,100,100);  // Dibuja el ellipse
}

El resultado debería ser el siguiente:

En la siguiente sesión veremos los demás operadores lógicos y como funcionan, y en las siguientes sesiones veremos las demás estructuras lógicas. Por ahora probemos el siguiente código y concluiremos esta sesión.

int posicion = 0;

void setup(){
   //instrucciones que se ejecutan sólo una vez
   size(500,500);   // Tamaño del canvas
   background(255,255,255);   // Color de fondo del canvas
   fill(255,0,0);   // Color de relleno de figura
   stroke(255,0,0);   // Color de trazo de figura
}

void draw(){
   //instrucciones que se ejecutan repetidamente
   posicion = posicion + 1;   // Esta instrucción mueve 1px al ellipse

   // Estructura condicional if
   if(posicion == 250){
      // Cuando posicion tenga el valor de 250
      // se cambiará el color de relleno a azul.
      fill(0,0,255);
   }
   else{
      //Cuando posicion tenga un valor de 250
      // el color de relleno será rojo
      fill(255,0,0);
   }

   background(255,255,255);   // Limpiar fondo de pantalla
   ellipse(posicion,250,100,100);  // Dibuja el ellipse
}

Verás que el programa dejó de funcionar adecuadamente, ahora por un momento cambia de color el círculo pero inmediatamente regresara a su valor anterior, el color del círculo es azul solamente cuando posicion es igual a 250, cuando pasa a 251 vuelve al color rojo.