Le variabili Olga Scotti
Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito. Nei linguaggi ad alto livello le variabili possono essere di diverso tipo: ci sono variabili che possono contenere numeri interi, altre che possono contenere numeri con la virgola, altre possono contenere stringhe o oggetti più complicati.
Definizione formale Formalmente ogni variabile è una porzione della memoria del computer in cui è possibile memorizzare un valore da utilizzare all interno di un programma. Tutte le variabili devono avere un nome e un tipo.
Variabili tipate Quando si utilizzano le variabili è importante fare attenzione a cosa si cerca di memorizzarci dentro: cercare per esempio di memorizzare una stringa in una variabile fatta per memorizzare un intero provocherà un errore.
Primo programma con variabili public class Somma { public static void main(string args[]) { /* dichiarazione di una variabile di tipo intero */ int risult; /* assegno alla variabile il risultato dell'operazione */ risult = 134+987; /* stampo il contenuto della variabile risult */ System.out.println(risult); } }
Miglioriamo la stampa Eventualmente prima di far stampare il risultato potremmo far scrivere qualcosa che faccia capire che cosa abbiamo calcolato. La riga per la stampa potrebbe diventare così: System.out.print("134+987 fa "); System.out.println(risult);
Stampa il valore di una variabile ATTENZIONE! Quando si vuole stampare il contenuto di una variabile il suo nome non va messo tra virgolette ma solo tra parentesi.
Nomi di variabili I nomi delle variabili si scelgono solitamente in modo che sia facile intuire il loro contenuto. Per convenzione inoltre tutti i nomi di variabili iniziano con la lettera minuscola.
Evoluzione della somma public class Somma1 { public static void main(string args[]) { /* dichiarazione di più variabili di tipo intero separate da una virgola */ int risult, num1, num2; /* assegnamento dei valori alle variabili */ num1 = 178; num2 = 675; /* assegno alla variabile il risultato dell'operazione */ risult = num1 + num2; /* stampo parti di testo e contenuto di variabili unendo i pezzi con un + */ System.out.println("La somma di " + num1 + " e " + num2 + " e' " + risult); } }
Sovrascrittura dei valori Quando si colloca un valore in una variabile, il valore precedentemente contenuto, se c era, viene irrimediabilmente perduto.
Esempio di perdita di valore public class Somma2 { public static void main(string args[]) { int risult, num1, num2; num1 = 178; num2 = 675; risult= 98; System.out.println("Ora la variabile risult vale: " + risult); /* assegno alla variabile il risultato dell'operazione */ risult = num1 + num2; /* stampo di nuovo risult */ System.out.println("Dopo l assegnamento vale " + risult); } } Olga Scotti
Tipi di variabili Oltre alle variabili di tipo intero si possono dichiarare variabili di tipo: char : un solo carattere boolean : vero o falso byte : interi da 128 a +127 (8 bit) short : interi da 32768 e +32767 (16 bit) long : interi memorizzabili in 64 bit float : numeri reali memorizzabili in 32 bit double : numeri reali memorizzabili in 64 bit Insieme a int (interi da 32 bit), i tipi elencati sopra sono definiti tipi di dato primitivi.
Memoria occupata Le variabili dichiarate int sono più capienti, cioè possono memorizzare interi più grandi ma occupano più spazio in memoria rispetto a quelle dichiarate byte. Allo stesso modo le variabili dichiarate double occupano più spazio di quelle dichiarate float. Solo quando si utilizzano un gran numero di variabili ha senso preoccuparsi di risparmiare sullo spazio valutando al meglio il tipo di variabile sufficiente allo scopo.
Tipi non primitivi Esistono anche tipi non primitivi come per esempio il tipo String (notate che non inizia con la lettera minuscola) che permette di memorizzare sequenze di caratteri.
Operazioni matematiche Gli operatori *, +, - sono usati come di consueto. Attenzione all operatore / infatti 7/5 darà come risultato 1 se le variabili utilizzate sono intere, darà un risultato con la virgola se si utilizzano variabili double. C è inoltre l operatore % che restituisce il resto della divisione intera tra i due numeri a cui è applicato. Quindi 11 % 3 = 2 (il resto di 11/2). Questo operatore è utile per determinare se un numero è multiplo di un altro o per vedere se un numero è pari o dispari. Anche le parentesi sono utilizzate con il solito significato per modificare le precedenze tra le operazioni.
Divisioni public class Divisioni { public static void main( String args[] ) { int num1,num2,risult; double num3,num4,risult2; num1 = 15; num2 = 7; num3 = 15; num4 = 7; risult = num1 / num2; risult2 = num3 / num4; System.out.println("La divisione fra " + num1 + " e " + num2 + " e' " + risult); System.out.println("La divisione fra " + num3 + " e " + num4 + " e' " + risult2); } }