Java/Istruzioni: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
Correggo tag deprecato
 
Riga 8: Riga 8:


Nell'esempio che segue, le righe che contengono una istruzione vuota sono marcate con la scritta "Qui".
Nell'esempio che segue, le righe che contengono una istruzione vuota sono marcate con la scritta "Qui".
<source lang="Java">
<syntaxhighlight lang="Java">
public void metodo(int[] valori) throws ArrayIndexOutOfBoundsException {
public void metodo(int[] valori) throws ArrayIndexOutOfBoundsException {
; // Qui
; // Qui
Riga 26: Riga 26:
while(true); // Qui
while(true); // Qui
}
}
</syntaxhighlight>
</source>


== Blocco di istruzioni ==
== Blocco di istruzioni ==
Riga 33: Riga 33:
Viene tipicamente usato in combinazione con le strutture di controllo, oppure può essere usato apposta per chiarezza.
Viene tipicamente usato in combinazione con le strutture di controllo, oppure può essere usato apposta per chiarezza.


<source lang="Java">
<syntaxhighlight lang="Java">
void metodo(int[] valori) {
void metodo(int[] valori) {
// Calcolo il primo indice i tale che valori[i] != 0
// Calcolo il primo indice i tale che valori[i] != 0
Riga 50: Riga 50:
while(true) {} //ciclo infinito
while(true) {} //ciclo infinito
}
}
</syntaxhighlight>
</source>


== Dichiarazioni di variabili locali ==
== Dichiarazioni di variabili locali ==

Versione attuale delle 20:38, 4 giu 2020

Java

Linguaggio Java
Linguaggio Java

categoria · sviluppo · modifica
Come posso contribuire?

→ Vai su Wikiversity

Java:  Guida alla programmazioneJava/Introduzione - Specifica di linguaggio - Libreria standardJava/Comunicazione seriale

Tipi di datoJava/Tipi di datoEspressioniJava/OperatoriVariabiliJava/Variabili localiIstruzioniJava/IstruzioniStrutture di controlloJava/Strutture di controlloPackageJava/Package
Classi e oggettiJava/Classi e oggettiOggettiJava/OggettiMetodiJava/MetodiMetodi (cont.)Java/Metodi/2ArrayJava/Array
Modificatori di accessoJava/Modificatori di accessoEreditarietàJava/Ereditarietà
Gestione delle eccezioniJava/Gestione delle eccezioniGenericsJava/Generics
Thread e parallelismoJava/MultithreadingInterblocco ricontrollatoJava/Interblocco ricontrollato
Alcune differenze con il CJava/Concetti fondamentaliLessicoJava/LessicoGrammaticaJava/Grammatica

Introduzione[modifica]

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]

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]

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]

Per approfondire, vedi Java/Variabili locali.

Assegnazione di variabili[modifica]

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]

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]

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:

  1. controlla se le asserzioni sono abilitate per la classe in cui si trova;
  2. in caso affermativo,
    1. calcola l'espressione
    2. se il valore calcolato è false, lancia una java.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]

Better Resource Management with Java SE 7

synchronized[modifica]

Per approfondire, vedi Multithreading.

Bibliografia[modifica]

Note[modifica]


Approfondimenti
  1. java - the Java application launcher