Una variable és un espai que ens permet emmagatzemar un valor únic a la memòria del programa per tal de poder-lo utilitzar més endavant.
Podem pensar en les variables com unes capses de memòria on hi guardarem coses (informació). Abans de poder utilitzar la capsa (l'espai de memòria reservat), l'hem de crear i posar-li un nom que l'identifiqui (que em permeti saber què hi ha en aquella capsa), d'això se'n diu inicialitzar la variable. Pots crear una variable anant a la secció Variables de l'editor de blocs:
Un cop inicialitzada la variable amb un nom que l'identifiqui i un valor inicial, ja la podem utilitzar i modificar (amb set) des de qualsevol punt del programa. Aquestes variables són globals, és a dir, les podem utilitzar en qualsevol punt de l'aplicació. P.ex., una variable inicialitzada a la pantalla 1, es pot fer servir a la pantalla 2.
En programació és molt habitual que hàgim de treballar amb llistes de dades o informació. Instagram processa la teva llista d'amistats i la llista de missatges, Spotify processa la teva llista de musica preferida, etc.
Una variable pot emmagatzemar un únic valor com "Hola" ó 52, o tota una llista d'informació. Pots definir una llista a l'apartat Lists de l'editor de codi:
Veiem que els blocs de llistes estan pensats per enganxar a un altre bloc. Una bona pràctica és crear la llista a dins d'una variable. Els blocs de llista per defecte tenen tres elements, però clicant a la rodoneta blava podem configurar la llista amb els elements que vulguem. Si, p.ex. volem que la nostra aplicació de matemàtiques tingui quatre preguntes en lloc de només una, podem crear una variable preguntes i emmagatzemar-hi una llista amb les quatre preguntes que volem fer:
A l'apartat Lists veiem que hi ha molts blocs per utilitzar amb les llistes, p.ex. podem buscar un element concret dins d'una llista, podem afegir o treure elements a la llista, ordenar els elements de forma aleatòria, etc. Un dels blocs més útils és el que ens permet accedir als diferents elements de la llista:
Aquest bloc ens apareix per defecte amb una llista ("a"; "b") que normalment canviarem per la nostra variable on tenim la llista. El número qui hi ha al final del bloc, per defecte un "1" és el que determina a quin element de la llista volem accedir (al 1r, al 2n, al 3r,...). Si, p.ex., volem que quan s'obri l'aplicació de matemàtiques es mostri la segona pregunta de la nostra llista de preguntes, farem:
Normalment necessitem una variable extra que ens permeti controlar quin és l'element de la llista que s'està mostrant o estem accedint, ja que no volem accedir a un únic element concret (en el cas anterior el 2n), sinó que volem accedir als diversos elements de la llista en funció del desenvolupament de l'aplicació. Per tenir aquest control sobre els elements de la llista, s'acostuma a crear una variable nova que s'anomena index:
Una estructura així ens dona molta flexibilitat, ja que podem modificar el valor de la variable índex en qualsevol punt del programa i automàticament es modificarà l'element de la llista al que estem accedint o mostrant.
Ja hem programat l'app de matemàtiques perquè mostri diverses preguntes. Ara cal que programem quina és la resposta correcta a cada pregunta. Com ho faries?
Pista 1: Hem d'emmagatzemar les respostes correctes en una variable llista.
Pista 2: Hem de modificar la condició de la sentència if perquè comprovi si la resposta del jugador és igual a la resposta correcta que tenim a la nostre variable llista respostes.