Il linguaggio Java Istruzioni di Controllo
Istruzioni per il controllo di flusso Istruzioni di selezione if switch Istruzioni di iterazione while do-while for Istruzioni di salto break continue return
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
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 )
Istruzione di selezione: IF 3 Esempio 4:
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
Istruzione di selezione: SWITCH 2
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; }
Istruzione di iterazione: WHILE 2
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)
Istruzione di iterazione: DO WHILE -2
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> }
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 );
Istruzione di iterazione: FOR - 3
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
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 do while for break mezzo cicli condizione all inizio cicli condizione alla fine ciclo con contatore ciclo con condizione anche in
Istruzione di salto: BREAK - 3
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) }
Istruzione di salto: CONTINUE - 2
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.