Una variabile è una locazione di memoria, in cui noi possiamo salvare un oggetto di tipo primitivo o più complesso.
In Java i tipi primitivi sono i numeri, i caratteri alfabetici e i booleani (true e false).
I numeri sono suddivisi in quattro categorie: gli int, i long, i float e i double. I primi due tipi sono numeri interi, mentre gli ultimi due sono numeri a virgola mobile (cioè possono rappresentare i numeri con valori decimali diversi da zero). Tra il primo e il secondo tipo vi è una differenza di grandezza: gli int sono i numeri rappresentabili con 32 bit, mentre i long quelli con 64 bit. Lo stesso discorso vale per i float (più piccoli) e i double. I più usati sono gli int e i double.
I caratteri alfabetici sono rappresentati con il char, e ogni variabile può contenere un solo carattere.
I booleani sono rappresentati con le variabili di tipo boolean, che può assumere il valore di “vero” -true- o “falso” -false-. Sono utili soprattutto nel construtto dell'if-else, che vedremo tra poco.
Anche se in realtà non è un tipo primitivo, le variabili di tipo stringa -String- si comportano come quelle già citate, per cui le tratteremo come tali.
Come funzionano le variabili?
Quando creiamo una variabile, salviamo il contenuto dentro la memoria, e possiamo utilizzare quel dato più volte, per più operazioni.
La creazione di una variabile comprende due fasi: la dichiarazione, in cui scegliamo il tipo di variabile e il suo nome,
Codice: Seleziona tutto
int n;
Codice: Seleziona tutto
n = 394;
Codice: Seleziona tutto
double m = 3.14;
Quando assegniamo un valore di tipo char, va messa una virgoletta singola ' prima e dopo del carattere, mentre per le stringhe usiamo le virgolette doppie ”. Quindi 'a' è di tipo char, “a” è di tipo String; 16 è un numero, '1' è un carattere e ”16” è una stringa.
Codice: Seleziona tutto
boolean b = false;
char l = 'x';
String f = "Flip delfino curioso";
Codice: Seleziona tutto
String s = "Sal pippen";
String p = s;
Codice: Seleziona tutto
System.out.println(p + s);
Se invece vogliamo modificare il valore di variabile già assegnata, possiamo farlo, in questo modo:
Codice: Seleziona tutto
s = "Storm pollo";
Codice: Seleziona tutto
System.out.println(p + " " + s);
Rispetto all'altra stampa, il codice è lievemente diverso, perchè tra le due variabili ho inserito una piccola stringa, contenente uno spazio.
Ovviamente non possono esserci due variabili con lo stesso nome.
Alle variabili possono essere assegnati anche i risultati di un metodo:
Codice: Seleziona tutto
double num = Math.random();
System.out.println(num);
Ci sono limitazioni per nominare le variabili?
Sì. Le variabili non possono avere come nome parole chiavi di Java (es. public, main, private, synchronized, char, void...), non possono avere un numero come iniziale, e ovviamente non vi possono due variabili diverse con lo stesso nome. Inoltre è buona norma usare solo lettere minuscole.
Cos'è l'if-else?
Il costrutto “if-else” è presente nella maggior parte dei linguaggi di programmazione, e struttura il programma affinchè esso esegua un certo comando se avviene una certa condizione.
Codice: Seleziona tutto
if(num != 0.20){
System.out.println(f);
}else{
System.out.println(s);
}
(num != 0.20): condizione per cui il programma esegue il codice racchiuso nell'istruzione if; in questo caso, la variabile num deve essere differente da 0,20.
{: il ritorno della parentesi graffa! Indica l'inizio del blocco di codice che viene eseguito se la condizione è verificata; la parentesi chiusa indica la fine del blocco di codice.
System.out.println(f);: la parte di codice condizionata, in questo caso la stampa a schermo della stringa f.
else: altrimenti. Indica che il blocco di codice racchiuso viene eseguito se non è verificata la condizione dell'istruzione if.
Codice: Seleziona tutto
if(num < 0.20){
System.out.println(p);
}else if(num == 0.20){
System.out.println(f);
}else{
System.out.println(s);
}
if(num < 0.20){System.out.println(p);}: se la variabile num assume un valore minore di 0,20, allora viene stampata la stringa p.
else if(num == 0.20){System.out.println(f);}: l'else if si comporta esattamente come un if, e deve essere messo se ci sono più di due condizioni da verificare. Viene stampata la stringa f se num è uguale a 0,20. In Java l'uguaglianza numerica si scrive con due uguali, per non confonderla con il “=” dell'assegnazione.
else{System.out.println(s);}: se non sono verificate nessuna delle due condizioni precedenti (in questo caso, se num è maggiore di 0,20), allora viene stampata la stringa s.
Ecco qua una rapida lista dei comparatori e altre istruzioni usate come condizioni per gli if.
Codice: Seleziona tutto
A == b //a è uguale a b
a != b //a è diverso da b (il punto esclamativo è il simbolo della negazione)
a < b //a è minore di b
a <= b //a è minore o uguale a b
a >= b //a è maggiore o uguale a b
a > b //a è maggiore di b
A && B //deve verificarsi sia la condizione A che la condizione B
A || B //deve verificarsi la condizione A o la condizione B
if(): L'istruzione all'interno del blocco viene eseguita se la variabile è true.
if(!): L'istruzione all'interno del blocco viene eseguita se la variabile false.
Codice: Seleziona tutto
if(!b){
System.out.println(n);
}
Cosa sono i commenti?
Poco prima, nell'elencare i comparatori, accanto ad essi ho scritto dei commenti, cioè delle breve spiegazioni. Sono molto utilizzati, soprattutto nei programmi open source, per rendere più chiaro il codice e migliorare la visibilità delle funzioni; esso non serve alla programmazione, anzi, il compilatore non lo prende nemmeno in considerazione.
Esistono due tipi di commento: il commento su una riga e quello su più righe.
Codice: Seleziona tutto
/*Commento
su più
righe*/
Codice: Seleziona tutto
//Commento su una riga
Risultato finale
Ecco qua tutto il codice scritto in questa lezione:
Codice: Seleziona tutto
public class SalMerenda {
public static void main(String args[]){
int n;
n = 394;
double m = 3.14;
boolean b = false;
char l = 'x';
String f = "Flip delfino curioso";
String s = "Sal pippen";
String p = s;
System.out.println(p + s);
s = "Storm pollo";
System.out.println(p + " " + s);
double num = Math.random();
System.out.println(num);
if(num != 0.20){
System.out.println(f);
}else{
System.out.println(s);
}
if(num < 0.20){
System.out.println(p);
}else if(num == 0.20){
System.out.println(f);
}else{
System.out.println(s);
}
if(!b){
System.out.println(n);
}
}
}
Esercizio
Scrivere un programma che stampa due stringhe differenti, a seconda se il valore della variabile “numero” sia compreso o meno tra 0,3 e 0,7. Usare Math.random().
That is not dead which can eternal lie, and with strange aeons, even death may die.