---
title: "Variables y Expresiones Booleanas"
---

Lo *booleano* se refiere a un sistema en el que solo hay dos posibles valores, *verdadero* o *falso*, (`true` o `false`).

# Variables booleanas

Las variables booleanas en Processing son de tipo `boolean` y pueden guardar ya sea `true` o `false`:

```java
boolean juegoEncendido = true;
boolean enColision = false;
```

Dos variables booleanas que Processing tiene predeterminadas, y que se actualizan con cada frame en el ciclo `draw()`, son

* `mousePressed` - `true` cuando estás haciendo click dentro del canvas, `false` si no
* `keyPressed` - `true` cuando cualquier tecla está presionada, `false` si no

[[Ciclo de animación]](/notas/draw.html)

# Expresiones booleanas

Las expresiones booleanas son aquellas cuyo resultado es `true` o `false`.

Pueden componerse de variables booleanas, operadores lógicos, y/o operadores relacionales.


## Operadores lógicos

Podemos verlos como similares a los operadores aritméticos (+, -, \*, /), en cuanto a que realizan una operación con sus *operandos* de acuerdo a reglas específicas.

Los operadores lógicos son:

* `&&` - AND: da `true` solo cuando los dos operandos son `true`
* `||` - OR: da `true` cuando cualquiera de los dos, o los dos operandos son `true`
* `!` - NOT: da `true` cuando su operando es `false`

## Operadores relacionales

Estos operadores comparan valores y resultan en `true` o `false`:

* `==` - "igual": da `true` cuando los dos valores son iguales
* `!=` - "desigual": da `true` cuando los dos valores son diferentes entre sí
* `>` - "mayor que": da `true` cuando el valor de la izquierda es mayor al de la derecha
* `<` - "menor que": da `true` cuando el valor de la izquierda es menor al de la derecha
* `>=` - "mayor o igual que": da `true` cuando el valor de la izquierda es mayor o igual al de la derecha
* `<=` - "menor o igual que": da `true` cuando el valor de la izquierda es menor o igual al de la derecha


## Ejemplos de expresiones

Revisar si la posición en X se pasó del borde derecho 

"¿la posición en X es mayor al ancho?"

```java
boolean salioDerecho = posicionX > width;
```

Revisar si la posicion en X se salió por cualquiera de los dos bordes:

"¿la posición en X es mayor al ancho o menor a 0?"

```java
boolean salioX = (posicionX > width) || (posicionX < 0);
```

Revisar si el mouse está dentro en cierto rango horizontal delimitado por `minX` y `maxX`:

"¿la coordenada X del mouse es mayor o igual al mínimo, y menor o igual al máximo?"

```java
boolean dentroDelRango = (mouseX >= minX) && (mouseX <= maxX);
```

Estas y otras expresiones booleanas se pueden usar como argumentos de expresiones condicionales.

[[Expresiones condicionales]](/notas/condicionales.html)
