---
title: "Expresiones condicionales"
---

Las expresiones condicionales nos permiten indicar cuando queremos que la computadora haga una u otra acción dependiendo de cierta condición (expresión booleana)

[[Variables y expresiones booleanas]](/notas/boolean.html)

# if( ) sencillo

Usamos la expresión `if( )` para indicar que queremos que suceda cierto bloque de código *únicamente* cuando la expresión booleana sea verdadera (`true`).

Por ejemplo, *dibuja una elipse en la posición del mouse, solo cuando el mouse esté presionado*:

```java
if( mousePressed ) {
    ellipse( mouseX, mouseY, 100, 100);
}
```

Otro ejemplo, *regresa la posición a 0 cuando sea mayor al ancho de la pantalla*:

```java
if( posicionX > width ){
    posicionX = 0;
}
```

# if( ) ... else

Usamos `if( ) ... else` cuando queremos tener dos caminos posibles: un bloque de código se ejecuta cuando la expresión booleana es verdadera (`true`), y el otro cuando no (o sea, cuando es `false`)

Por ejemplo, *dibuja el fondo azul cuando el mouse esté a la derecha del canvas, y dibújalo verde cuando no*:

```java
if( mouseX > width/2 ){
    background( 0, 0, 255 );
}	
else{
    background( 0, 255, 0 );
}
```

Nota que el `else` va después de la llave que cierra al `if`


# if( ) ... else if ( ) ... else

Las expresiones booleanas solo tienen dos posibles resultados, pero en ocasiones necesitamos más de dos opciones.

En esos casos podemos "encadenar" expresiones `if()`.

Por ejemplo, *dibuja el fondo azul cuando el mouse esté a la derecha del canvas, verde cuando esté a la izquierda arriba, y rojo cuando esté a la izquierda abajo*:

```java
if( mouseX > width/2 ){
    background( 0, 0, 255 );  // azul
}
// si la expresión de arriba es falsa,
// entonces mouseX está del lado izquierdo
// y podemos checar solo a mouseY
else if( mouseY < height/2 ){
    background( 0, 255, 0 ); // verde
}
else{
    background( 255, 0, 0 ); // rojo
}
```

# if() 'anidados'

Es posible usar expresiones `if()` dentro de otras.

Por ejemplo, queremos mover la posición a la derecha al apretar la tecla 'd', y a la izquierda al apretar la tecla 'a':

```java
if( keyPressed ){ // revisa si hay alguna tecla presionada
    // si sí, entonces revisa qué tecla es:
    if( key == 'd' ){
        // avanza a la derecha
        posicionX = posicionX + 1;
    }
    else if( key == 'a' ){
        // avanza a la izquierda
        posicionX = posicionX - 1;
    }
}
ellipse(posicionX, height/2, 100, 100);
```
