• Non ci sono risultati.

Il linguaggio Java Istruzioni di Controllo

N/A
N/A
Protected

Academic year: 2022

Condividi "Il linguaggio Java Istruzioni di Controllo"

Copied!
20
0
0

Testo completo

(1)

Il linguaggio Java

Istruzioni di Controllo

(2)

Istruzioni per il controllo di flusso

„

Istruzioni di selezione

… if

… switch

„

Istruzioni di iterazione

… while

… do-while

… for

„

Istruzioni di salto

… break

… continue

… return

(3)

Istruzione di selezione: IF - 1

„

Sintassi:

… if(<condizione>) <istruzione_1>

[else <istruzione_2>]

… <istruzione_1> e <istruzione_2> possono essere istruzioni singole o blocchi

„

Semantica:

Se <condizione>=true viene eseguita l’istruzione o il blocco di istruzioni <istruzione_1> [ altrimenti viene eseguita l’istruzione o il blocco di istruzioni

<istruzione_2> ]

„

Il ramo

else

si lega all’istruzione

if

più vicina

(4)

Istruzione di selezione: IF – 2

„

Esempio 1:

if (x==5) System.out.println(“x vale 5”);

System.out.println(“Fatto!”);

„

Esempio 2:

if (x>0 && y>0) System.out.println (“x e y positivi”);

else if (x>0) System.out.println(“x positivo”);

else if (y>0) System.out.println(“y positivo”);

else System.out.println(“x e y non positivi”);

System.out.println(“Fatto!”);

„

Esempio 3:

if (x==5) {

System.out.println(“x vale 5”);

System.out.println(“Sto ancora nel blocco if”);

}

System.out.println(“Fatto”)

(5)

Istruzione di selezione: IF – 3

„

Esempio 4:

(6)

Istruzione di selezione: SWITCH - 1

„

Sintassi:

switch(<espressione>){

case <costante 1>:[<istruzione 1>;]*

case < costante 2>:[<istruzione 2>;]*

case < costante n>:[<istruzione n>;]*

[default : [<istruzioneDefault>;]*]

}

„

Semantica:

Se <espressione>=<costante i> vengono eseguite le l’istruzioni/blocchi <istruzione j> con j>=i . Se

<espressione> è diversà da tutte le costanti viene eseguita l’istruzione <istruzioneDefault>

„

L’espressione all’interno dello switch deve

essere di tipo char, byte, short o int

(7)

Istruzione di selezione: SWITCH – 2

(8)

Istruzione di iterazione: WHILE - 1

„

Sintassi:

while(<condizione>) <istruzione>;

„

Semantica:

Finchè <condizione>=true viene eseguita l’istruzione/blocco <istruzione>

„

Esempio:

int r = 5;

while (r>0){

System.out.println(“Il valore di r e’: ”+r);

r=r-1;

}

(9)

Istruzione di iterazione: WHILE – 2

(10)

Istruzione di iterazione: DO WHILE -1

„ Sintassi:

do <istruzione> while (<condizione>);

„ Semantica:

Viene eseguita l’istruzione/blocco <istruzione> finchè

<condizione>=true. A differenza del while-do in questo caso l’istruzione/blocco viene sempre eseguita almeno una volta.

„ Esempio:

int r = 5;

do{

System.out.println(“Countdown=”+r);

r--;

} while (r>0)

(11)

Istruzione di iterazione: DO WHILE -2

(12)

Istruzione di iterazione: FOR - 1

„

Sintassi:

for (<istr1>; <condiz>; <istr2>)

<istr3>;

… <istr1> e <istr2> sono istruzioni semplici o liste di istruzioni separate da virgola

… <istr3> è un istruzione o un blocco

„

Semantica:

<istr1>;

while (<condiz>){

<istr3>

<istr2>

}

(13)

Istruzione di iterazione: FOR - 2

„

Esempio 1:

int r;

for(r=0; r<5; r++)

System.out.println(“Counter: ”+r);

„

Esempio 2:

for(int r=0; r<5; r++)

System.out.println(“Counter: ”+r);

„

Esempio 3:

for(int r=0, int i=10; r<10; r+=2, i--) System.out.println(“i=“+i+” r=“+r );

(14)

Istruzione di iterazione: FOR - 3

(15)

Istruzione di salto: BREAK - 1

„

Sintassi:

break [<label>]

„

Semantica:

restituisce il controllo all’istruzione che include quella con il break e che è marcata con

l’identificatore specificato (se questo è presente)

„

L’istruzione break ha tre impieghi:

… All’interno dell’istruzione di switch

… Per uscire da un ciclo

… Forma “civilizzata” di goto

(16)

Istruzione di salto: BREAK - 2

„

Esempio 1: Per uscire da un ciclo

java.io.FileInputStream s = new FileInputStream(“a”);

while (true){

b = s.read();

if (b == -1) break;

System.out.println(b);

}

„

Osservazione rispetto all’uscita da un ciclo:

… while Æ cicli condizione all’inizio

… do while Æ cicli condizione alla fine

… for Æ ciclo con contatore

… break Æ ciclo con condizione anche “in mezzo”

(17)

Istruzione di salto: BREAK - 3

(18)

Istruzione di salto: CONTINUE - 1

„ Sintassi:

continue [<label>]

„ Semantica:

forza un’interazione anticipata del ciclo che include il blocco con il continue e che è marcata con

l’identificatore specificato.

„ Esempio:

Stampa i numeri da 1 a 10 tranne il 5.

for (int i= 0; i<10; i++){

if (i==5) continue;

System.out.println(i) }

(19)

Istruzione di salto: CONTINUE - 2

(20)

Istruzione di salto: RETURN

„

Sintassi:

return [<valore>]

„

Semantica:

Istruzione di controllo usata per ritornare

esplicitamente da un metodo. In altri termini fa sì che il controllo del programma venga trasferito di nuovo a “chi” ha chiamato il metodo.

„

Osservazione:

Le istruzioni successive all’istruzione di return

non vengono eseguite.

Riferimenti

Documenti correlati

• Un programma Java puo accedere a files conte- nenti suoni, immagini, testi ed altri programmi Java ovunque situati sulla rete WEB, mediante dei riferimenti basati su indirizzi

• Patata, carota, prezzemolo a grossa radice, aglio, cipolla, scalogno, spinacio, fagiolo (per consumo fresco con o senza baccello e secco), pisello (per consumo fresco con o senza

• Quando un metodo viene ridefinito in una classe derivata, il nuo- vo metodo pu`o lanciare solo le eccezioni dichiarate nel metodo della classe base.. • Tutte le eccezioni

• La condizione di mutua esclusione e’ l’unificazione dell’elemento da cancellare con la testa della lista dell’elemento da cancellare con la testa della lista. (cl1) delete1(T,

Usando le classi del precedente esercizio, scrivere una semplice classe Agenzia Assicurativa, dove ciascun oggetto della classe `e caratterizzato dal nome dell’agenzia e da un elenco

Il principio di massimo per problemi con intervallo di tempo fissato e variabile.. Confronto con l’equazione di Eulero-Lagrange e con la funzione di eccesso

7 - Questo è quanto può apparire spostando un diaframma di campo supplementare (poggiato sulla finestra illuminante) in modo che la sua immagine si allontani dal centro

– Se Body è composto da una sola istruzione si possono omettere le parentesi