Java/Istruzioni
Introduzione
[modifica | modifica sorgente]Il corpo di un metodo è costituito da una sequenza di istruzioni. Le istruzioni disponibili sono elencate in questa pagina e nella pagina "Strutture di controllo".
Istruzione vuota
[modifica | modifica sorgente]L'istruzione vuota è costituita dal solo punto e virgola. Essa non esegue nulla. Viene tipicamente usata in combinazione con le strutture di controllo, oppure può essere usata apposta per chiarezza.
Nell'esempio che segue, le righe che contengono una istruzione vuota sono marcate con la scritta "Qui".
public void metodo(int[] valori) throws ArrayIndexOutOfBoundsException {
; // Qui
// Cerca il primo indice i tale che valori[i] != 0
int i = 0;
for(valori[i] == 0; i++); // Qui
// a questo punto valori[i] != 0
if (i == 0)
; // Qui
else
System.out.println("i vale " + i);
//ciclo infinito
while(true); // Qui
}
Blocco di istruzioni
[modifica | modifica sorgente]Una coppia di parentesi graffe rappresenta una singola istruzione che, a sua volta, racchiude all'interno un numero arbitrario di istruzioni. Eseguire il blocco vuol dire eseguire le istruzioni di cui è composto, nell'ordine in cui sono scritte.
Viene tipicamente usato in combinazione con le strutture di controllo, oppure può essere usato apposta per chiarezza.
void metodo(int[] valori) {
// Calcolo il primo indice i tale che valori[i] != 0
{
int i = 0;
for(valori[i] == 0; i++);
// a questo punto valori[i] != 0
}
if (i == 0) {
} else {
System.out.println("i vale " + i);
System.out.println("valori[i] vale " + valori[i]);
}
while(true) {} //ciclo infinito
}
Dichiarazioni di variabili locali
[modifica | modifica sorgente]Per approfondire, vedi Java/Variabili locali. |
Assegnazione di variabili
[modifica | modifica sorgente]L'assegnazione di una variabile, tramite l'operatore =
, uno degli operatori che hanno la forma #=
, oppure gli operatori ++
e --
, è considerata un'istruzione.
Invocazioni di metodi o costruttori
[modifica | modifica sorgente]L'invocazione di un metodo è considerata un'istruzione.
Anche la creazione di un oggetto è considerata una istruzione: è perfettamente legale scrivere
new Object();
in quanto corrisponde all'invocazione del costruttore della classe desiderata. Tuttavia, il reference dell'oggetto creato viene perso, quindi l'oggetto sarà automaticamente distrutto.
Asserzioni
[modifica | modifica sorgente]L'istruzione assert
prende in ingresso un'espressione booleana e (opzionalmente) una stringa.
assert condizione;
oppure
assert condizione : messaggio;
dove condizione è un'espressione di tipo booleano e messaggio è un'espressione di tipo stringa.
Il comportamento a tempo di esecuzione è il seguente:
- controlla se le asserzioni sono abilitate per la classe in cui si trova;
- in caso affermativo,
- calcola l'espressione
- se il valore calcolato è
false
, lancia unajava.lang.AssertionError
usando come argomento la stringa, oppure una stringa di default se non è stata passata.
Il meccanismo per abilitare le asserzioni per una certa classe dipende dalla macchina virtuale. Sulla macchina virtuale Oracle, si passa alla riga di comando il parametro -ea
o -enableassertions
[A 1].
Le asserzioni sono utili in fase di sviluppo, ad esempio come piccoli test integrati nel programma, oppure per verificare le precondizioni e le postcondizioni dei metodi.
Automatic Resource Management
[modifica | modifica sorgente]Questa sezione è ancora vuota; aiutaci a scriverla! |
Better Resource Management with Java SE 7
synchronized
[modifica | modifica sorgente]Per approfondire, vedi Multithreading. |
Bibliografia
[modifica | modifica sorgente]- Capitolo 14 della specifica di linguaggio. In particolare, si segnala la sezione 14.5, che fornisce un elenco sintetico di tutte le istruzioni ammesse.
Note
[modifica | modifica sorgente]
- Approfondimenti