programacion-que-es-una-variable

Qué es una variable

Una variable es un contenedor designado para almacenar un dato o un valor, al que damos un nombre para poder acceder, manipular y reusar a lo largo de la ejecución del programa.

Nuestro programa va a tener que gestionar datos. De hecho, esa es su función principal, manipular y gestionar datos. Y, en algún sitio vamos a tener que guardar esos datos. Ese sitio, son las variables.

Normalmente suele usarse el símil de que una variable es “como una caja” donde guardamos datos. Es bastante adecuado, y es útil para explicar el concepto, así ¡que se viene esta caja!

variable-edad

Tu variable edad

Por ejemplo, podemos tener una variable llamada “edad” que guarda la edad de una persona. Lo primero que vemos es que le hemos puesto un nombre a nuestra caja, para poder acceder encontrarla, y diferenciarla de las demás.

Ahora yo cojo mi caja “edad”, y dentro coloco el número 25. Y tenemos otra propiedad de las variables, que es que sirven para almacenar cosas. Las variables pueden contener diferentes tipos de información, como números, nombres, colores o cualquier cosa que necesitemos en nuestro programa.

Si en algún momento quiero consultar la edad que he guardado, simplemente abro la caja, y obtengo el número 25.

variable-edad-25

Tu variable edad con 25 dentro

La ventaja de las variables es que su contenido puede cambiar. Pero no es necesario cambiar la caja, nuestra caja “edad” sigue siendo la misma. Simplemente vamos a cambiar lo que contiene.

variable-edad-26

Tu variable edad, ahora con 26 dentro

Así que dentro de un año, cuando la persona cumpla años, podemos abrir la caja “edad”, modificar el número por un 26 y cerrarla de nuevo. Ahora, al preguntar a la caja “edad”, nos dará el número 26 actualizado.‌

En resumen:

  • Las variables contienen cosas (información)
  • Tienen un nombre para diferenciarlas de los demás
  • El contenido puede cambiar, sin necesidad de cambiar la variable en sí

Contenido de una variable

Una variable se llama así porque se contenido puede variar. Lo sé, es quedarse muy ancho decir que una variable varía, pero es que es así. Por contra, los que no pueden variar se llaman constantes.

En cuanto al valor que podemos almacenar, puede ser cualquier cosa que nos permita el lenguaje. Desde un número, a una cadena de texto, o un objeto más complejo como la lista completa de pedidos de una fábrica.

La variable tiene un nombre y un tipo de datos asociado, lo que permite identificarla y acceder a su contenido en tiempo de ejecución.

Por ejemplo, un código

miTexto = "un texto impresionante"
miNumero = 42

Aquí, miTexto es una variable que almacena el texto “un texto impresionante”, y miNumero es una variable que almacena el número 42.

Dependiendo del lenguaje que estemos usando, tendremos disponibles unos tipos u otros de variables. Por otro lado, existen lenguajes con tipado estricto o lenguajes con tipado dinámico.

Declaración de una variable

En la muchos lenguajes de programación, se debe declarar una variable antes de usarla. Esto significa avisar al compilador o intérprete de “eh, quiero crear este contenedor con este nombre!”

Adicionalmente, en los lenguajes con tipado deberemos especificar el tipo datos que puede almacenar la variable.

Por ejemplo, en C# (tipado estricto) para crear una variable de tipo texto deberemos hacer.

string miTexto = "un texto impresionante"

En JavaScript (tipado dinámico) necesitamos declarar la variable, pero no es necesario indicar su tipo. Así quedaría.

let miTexto = "un texto impresionante"

Por otro lado, en Python no es necesario ni declarar la variable ni indicar su tipo. Por lo que la sintaxis quedaría así,

miTexto = "un texto impresionante"

Asignación de una variable

Para cambiar el contenido de una variable a lo largo del programa, simplemente tenemos que asignarle un nuevo valor. Aquí si que existe un consenso, y en casi todos los lenguajes se emplea el operador ’=‘.

Por tanto, cuando la variable ya existe, en C# para cambiar su valor haríamos.

miTexto = "otro texto aún más impresionante"

Que sería idéntico al caso de JavaScript

miTexto = "otro texto aún más impresionante"

E incluso al de Python,

miTexto = "otro texto aún más impresionante"

No obstante, cabe decir que si, por ejemplo, nos equivocamos al escribir el nombre de la variable y pusiéramos miText, en lugar de miText

miText = "otro texto aún más impresionante"

En C#, JavaScript, y en la mayoría de lenguajes, nos daría un error porque esa variable no existe (no la hemos declarado). Sin embargo, en Python se crearía una variable nueva llamada miText, sin ningún tipo de aviso.

Como vemos, exigir declarar las variables puede ser tanto una ventaja, porque resulta muy cómodo, como una fuente posible de errores.

Asignación de una variable a ella misma

Durante la asignación de la variable es posible usar su propio contenido para calcular el nuevo valor. Por ejemplo, es válido y muy frecuente hacer lo siguiente,

contador = contador + 1

Con esa sentencia estamos incrementando el contador en el valor de uno.

Esto es así porque la evaluación de esa expresión se evalúa en dos pasos,

  • Se evalúa la expresión de la derecha
  • Se asigna el valor resultante a la variable de la izquierda.

No hay ningún problema en que la expresión de la derecha contenta la propia variable. No va a hacer un “yo mi abuelo soy”, ni petarte el ordenador ni nada. Simplemente primero se evalúa lo de la derecha, y a continuación se guarda en la variable de la izquierda.