---
title: "Variables: Fundamentos"
---

Las *variables* nos permiten almacenar valores que pueden leerse y modificarse durante la ejecución del programa.

# Declaración

En Processing siempre hay que declarar una variable antes de usarla, estableciendo el tipo de dato que tendrá.

Los tipos de datos más comunes que usaremos son:

* `int`: números enteros (sin punto decimal), útiles para *contar*
* `float`: números con o sin punto decimal, útiles para dimensiones
* `boolean`: valores `true` o `false`
* `String`: cadenas de texto
* `color`: conjunto de valores de color

Podemos declarar una variable sin asignarle valor:

```java
float posicion;
//...
posicion = 10;
```

o asignarle un valor desde que la declaramos:

```java
float posicion = 10;
```

Después de declarar una variable no es necesario hacerlo de nuevo (de hecho, si lo intentamos encontraremos un error).

Aquí hay otros ejemplos de declaraciones, asignaciones, y uso:

```java
// declaración y asignación de variables
int cantidad = 10;
float ancho = 50.0;
boolean dibujaBordes = true;
String mensaje = "Texto de ejemplo";
color rojo = color(255, 0, 0);

// ahora utilizamos algunas variables:
// establece el color de relleno
fill( rojo );
// dibuja con la variable 'ancho'
rect( 100, 100, ancho, ancho );
// modificamos la variable 'ancho'
ancho = ancho / 2;
// dibujamos con el nuevo valor:
rect( 100, 100, ancho, ancho );
```

Notas relacionadas:

* [[Operadores aritméticos]](/notas/aritmetica.html)
* [[Color]](/notas/color.html)


# Variables especiales

Processing como sistema incluye y maneja algunas variables especiales, que normalmente podemos usar para consultar qué valores tienen.

En el editor de texto de Processing, estas variables se colorean de rosa.

Algunas de estas variables son:

* `width` y `height`: dimensiones del canvas en pixeles (tipo `int`)
* `mouseX` y `mouseY`: coordenadas del puntero del *mouse* en el canvas (tipo `int`)
* `mousePressed`: variable booleana que indica si el *mouse* está presionado (tipo `boolean`)
* `keyPressed`: variable booleana que indica si alguna tecla está presionada (tipo `boolean`)

[[Interactividad con mouse y teclado]](/notas/interactividad.html)

# Más sobre variables

* [[Variables y expresiones booleanas]](/notas/boolean.html)
* [[Variables: Contadores, Acumuladores, Banderas]](/notas/variables-modos.html)
