Control de flujo, condiciones y bucles para artistas

Expresiones lógicas

Durante la sección anterior aprendimos a dibujar figuras, utilizar variables y algunas funciones internas de p5, pero todo eso no es más que la punta del iceberg. Todavía nos falta aprender mucho más y a partir de ahora se os abrirá un nuevo mundo de posibilidades, eso es porque váis a aprender a controlar el flujo, o lo que es lo mismo, programar el código para que haga lo que vosotros queráis.

El control de flujo lo componen básicamente dos partes:

  • Las condiciones, con las que podemos decidir si un código se ejecuta o no.
  • Los bucles, que sirven para repetir un código mientras se cumple cierta condición.

Dejaremos los bucles para más adelante porque dependen en cierta forma de las condiciones, así que nos centraremos primeros en las condiciones, aunque para entenderlas antes debemos aprender qué son las expresiones lógicas.

Expresiones lógicas

Para condicionar el flujo de nuestro programa, éste deberá evaluar una expresión para decidir si se ejecuta un bloque de código o no, algo que conseguirá comparando dos valores, ya sean literales o variables, mediante un operador relacional:

  • Igual que: ==
  • Distinto de: !=
  • Mayor que: >
  • Mayor o igual que: >=
  • Menor que: <
  • Menor o igual que: <=

El resultado de esta comparación puede resultar únicamente en únicamente dos posibilidades lógicas, de ahí que se denominen expresiones lógicas:

  • Si se cumple diremos que su resultado es verdadero, en inglés true.
  • Si no se cumple diremos que su resultado es falso, en inglés false.

Ambos valores true y false forman lo que se conoce como tipos de datos lógicos o booleanos, unos datos diferentes de los números y los textos.

Hora de practicar

Pero basta de hablar y vamos a practicar algunas condiciones y sus resultados:

10 - Expresiones logicas/sketch.js

function setup() {
  createCanvas(400, 400);
  
  // Condiciones básicas
  var a = 10;
  var b = 15;
  var c = 20;
  
  var r = a == b;
  print(r)
  
  print(a == b)
  print(a != b)
  print(a > b)
  print(a < b)
  print(b >= c)
  print(b <= c)
  
  // Precedencia de operadores
  print(c < a*3)
  print(a+c == b*2)
  print(a+b+c > 50)
  print(a*b-a*c < 0)
  
  // Con lógicos
  var n = true;
  var m = false;
  
  print(n == true)
  print(n != true)
  print(n == m)
  print(n > m)
  
  // Con textos
  var s = "hola";
  var t = "adios";
  
  print(s == "hola")
  print(s == t)
}

function draw() {
  background(220);
}