Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo...

91
Capitolo 3 Basi del linguaggio c 2005 Pearson Education Italia Capitolo 3 - 1 / 48

Transcript of Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo...

Page 1: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Capitolo 3

Basi del linguaggio

c© 2005 Pearson Education Italia Capitolo 3 - 1 / 48

Page 2: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Sommario: Basi del linguaggio

1 La classe Frazione

2 L’istruzione if-else

3 Il tipo primitivo boolean

4 Il ciclo do...while

5 Il ciclo while

6 Il ciclo for

7 Le istruzioni break e continue

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 2 / 48

Page 3: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

La classe Frazione

Contratto: Frazione

Le sue istanze modellano frazioni.

Costruttori

public Frazione(int x)Costruisce una nuova Frazione il cui numeratore e ugualeall’argomento e il cui denominatore e 1.

public Frazione(int x, int y)Costruisce una nuova Frazione il cui valore e il rapporto fra il primoargomento e il secondo argomento.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 3 / 48

Page 4: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

La classe Frazione

Contratto: Frazione

Le sue istanze modellano frazioni.

Costruttori

public Frazione(int x)Costruisce una nuova Frazione il cui numeratore e ugualeall’argomento e il cui denominatore e 1.

public Frazione(int x, int y)Costruisce una nuova Frazione il cui valore e il rapporto fra il primoargomento e il secondo argomento.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 3 / 48

Page 5: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

La classe Frazione

Contratto: Frazione

Le sue istanze modellano frazioni.

Costruttori

public Frazione(int x)Costruisce una nuova Frazione il cui numeratore e ugualeall’argomento e il cui denominatore e 1.

public Frazione(int x, int y)Costruisce una nuova Frazione il cui valore e il rapporto fra il primoargomento e il secondo argomento.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 3 / 48

Page 6: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi: operazioni

public Frazione piu(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sommando la frazione specificata come argomento aquella che esegue il metodo.

public Frazione meno(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sottraendo la frazione specificata come argomentoda quella che esegue il metodo.

public Frazione per(Frazione f)

public Frazione diviso(Frazione f)

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 4 / 48

Page 7: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi: operazioni

public Frazione piu(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sommando la frazione specificata come argomento aquella che esegue il metodo.

public Frazione meno(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sottraendo la frazione specificata come argomentoda quella che esegue il metodo.

public Frazione per(Frazione f)

public Frazione diviso(Frazione f)

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 4 / 48

Page 8: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi: operazioni

public Frazione piu(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sommando la frazione specificata come argomento aquella che esegue il metodo.

public Frazione meno(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sottraendo la frazione specificata come argomentoda quella che esegue il metodo.

public Frazione per(Frazione f)

public Frazione diviso(Frazione f)

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 4 / 48

Page 9: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi: operazioni

public Frazione piu(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sommando la frazione specificata come argomento aquella che esegue il metodo.

public Frazione meno(Frazione f)Restituisce il riferimento a un nuovo oggetto che rappresenta lafrazione ottenuta sottraendo la frazione specificata come argomentoda quella che esegue il metodo.

public Frazione per(Frazione f)

public Frazione diviso(Frazione f)

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 4 / 48

Page 10: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi: operazioni di confronto

public boolean equals(Frazione f)Restituisce:

- true se le due frazioni hanno lo stesso valore- false in caso contrario

public boolean isMinore(Frazione f)Restituisce:

- true se la frazione che esegue il metodo e minore di quella specificatacome argomento

- false in caso contrario

public boolean isMaggiore(Frazione f)Restituisce:

- true se la frazione che esegue il metodo e maggiore di quellaspecificata come argomento

- false in caso contrario

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 5 / 48

Page 11: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi: operazioni di confronto

public boolean equals(Frazione f)Restituisce:

- true se le due frazioni hanno lo stesso valore- false in caso contrario

public boolean isMinore(Frazione f)Restituisce:

- true se la frazione che esegue il metodo e minore di quella specificatacome argomento

- false in caso contrario

public boolean isMaggiore(Frazione f)Restituisce:

- true se la frazione che esegue il metodo e maggiore di quellaspecificata come argomento

- false in caso contrario

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 5 / 48

Page 12: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi: operazioni di confronto

public boolean equals(Frazione f)Restituisce:

- true se le due frazioni hanno lo stesso valore- false in caso contrario

public boolean isMinore(Frazione f)Restituisce:

- true se la frazione che esegue il metodo e minore di quella specificatacome argomento

- false in caso contrario

public boolean isMaggiore(Frazione f)Restituisce:

- true se la frazione che esegue il metodo e maggiore di quellaspecificata come argomento

- false in caso contrario

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 5 / 48

Page 13: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi

public int getNumeratore()Restituisce il numeratore della frazione rappresentata dall’oggetto cheesegue il metodo.

public int getDenominatore()Restituisce il denominatore della frazione rappresentata dall’oggettoche esegue il metodo.

public String toString()Restituisce una stringa di caratteri che descrive la frazionerappresentata dall’oggetto che esegue il metodo.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 6 / 48

Page 14: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi

public int getNumeratore()Restituisce il numeratore della frazione rappresentata dall’oggetto cheesegue il metodo.

public int getDenominatore()Restituisce il denominatore della frazione rappresentata dall’oggettoche esegue il metodo.

public String toString()Restituisce una stringa di caratteri che descrive la frazionerappresentata dall’oggetto che esegue il metodo.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 6 / 48

Page 15: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Metodi

public int getNumeratore()Restituisce il numeratore della frazione rappresentata dall’oggetto cheesegue il metodo.

public int getDenominatore()Restituisce il denominatore della frazione rappresentata dall’oggettoche esegue il metodo.

public String toString()Restituisce una stringa di caratteri che descrive la frazionerappresentata dall’oggetto che esegue il metodo.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 6 / 48

Page 16: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if-else

if (condizione)istruzione1

elseistruzione2

condizioneE una qualunque espressione che restituisce un valore di tipo booleanscritta obbligatoriamente tra parentesi tonde

istruzione1, istruzione2sono istruzioni singole oppure blocchi di istruzioni, cioe sequenze diistruzioni racchiuse tra parentesi graffe

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 7 / 48

Page 17: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if-else

if (condizione)istruzione1

elseistruzione2

condizioneE una qualunque espressione che restituisce un valore di tipo booleanscritta obbligatoriamente tra parentesi tonde

istruzione1, istruzione2sono istruzioni singole oppure blocchi di istruzioni, cioe sequenze diistruzioni racchiuse tra parentesi graffe

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 7 / 48

Page 18: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if-else

if (condizione)istruzione1

elseistruzione2

condizioneE una qualunque espressione che restituisce un valore di tipo booleanscritta obbligatoriamente tra parentesi tonde

istruzione1, istruzione2sono istruzioni singole oppure blocchi di istruzioni, cioe sequenze diistruzioni racchiuse tra parentesi graffe

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 7 / 48

Page 19: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if-else: esecuzione

if (condizione)istruzione1

elseistruzione2

(1) Viene valutata condizione (il valore e true o false)

- se la condizione e vera, viene eseguita istruzione1

- se la condizione e falsa, viene eseguita istruzione2

(2) L’esecuzione riprende dalla prima istruzione che segue l’istruzioneif-else

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 8 / 48

Page 20: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if-else: esecuzione

if (condizione)istruzione1

elseistruzione2

(1) Viene valutata condizione (il valore e true o false)

- se la condizione e vera, viene eseguita istruzione1

- se la condizione e falsa, viene eseguita istruzione2

(2) L’esecuzione riprende dalla prima istruzione che segue l’istruzioneif-else

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 8 / 48

Page 21: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if-else: esecuzione

if (condizione)istruzione1

elseistruzione2

(1) Viene valutata condizione (il valore e true o false)

- se la condizione e vera, viene eseguita istruzione1

- se la condizione e falsa, viene eseguita istruzione2

(2) L’esecuzione riprende dalla prima istruzione che segue l’istruzioneif-else

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 8 / 48

Page 22: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if-else: esecuzione

if (condizione)istruzione1

elseistruzione2

(1) Viene valutata condizione (il valore e true o false)

- se la condizione e vera, viene eseguita istruzione1

- se la condizione e falsa, viene eseguita istruzione2

(2) L’esecuzione riprende dalla prima istruzione che segue l’istruzioneif-else

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 8 / 48

Page 23: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if: esecuzione

if (condizione)istruzione

Viene valutata la condizione

- se la condizione e vera, viene eseguita istruzione

- se la condizione e falsa, l’esecuzione riprende dalla prima istruzione chesegue l’if.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 9 / 48

Page 24: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if: esecuzione

if (condizione)istruzione

Viene valutata la condizione

- se la condizione e vera, viene eseguita istruzione

- se la condizione e falsa, l’esecuzione riprende dalla prima istruzione chesegue l’if.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 9 / 48

Page 25: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione if: esecuzione

if (condizione)istruzione

Viene valutata la condizione

- se la condizione e vera, viene eseguita istruzione

- se la condizione e falsa, l’esecuzione riprende dalla prima istruzione chesegue l’if.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 9 / 48

Page 26: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

if-else innestati

Dato che if-else e un’istruzione, puo comparire nel corpo diun’istruzione if-else...

int x, y, z;...if (x == 1)if (y == 1)z = x + y;

elsez = x * y;

elsez = x - y;

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 11 / 48

Page 27: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Indentazione

if (x == 1) if (y == 1) z = x + y; else z = x - y;

Per il compilatore e equivalente a:

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

In una sequenza di if innestati, un else e associato

al primo if che lo precede, ...

per il quale non sia stato ancora individuato un else

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 13 / 48

Page 28: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Indentazione

if (x == 1) if (y == 1) z = x + y; else z = x - y;

Per il compilatore e equivalente a:

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

In una sequenza di if innestati, un else e associato

al primo if che lo precede, ...

per il quale non sia stato ancora individuato un else

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 13 / 48

Page 29: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Indentazione

if (x == 1) if (y == 1) z = x + y; else z = x - y;

Per il compilatore e equivalente a:

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

In una sequenza di if innestati, un else e associato

al primo if che lo precede, ...

per il quale non sia stato ancora individuato un else

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 13 / 48

Page 30: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Esempio

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

Per associare l’unico else al primo if dobbiamo utilizzare le parentesigraffe:

if (x == 1) {if (y == 1)z = x + y;

} elsez = x - y;

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 15 / 48

Page 31: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Esempio

if (x == 1)if (y == 1)z = x + y;

elsez = x - y;

Per associare l’unico else al primo if dobbiamo utilizzare le parentesigraffe:

if (x == 1) {if (y == 1)z = x + y;

} elsez = x - y;

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 15 / 48

Page 32: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

boolean

Due valori possibili, denotati dai letterali false e true

CondizioniLe espressioni booleane, cioe le espressioni che restituiscono un valoredi tipo boolean

Condizioni sempliciConfronti fra espressioni di tipo primitivo mediante un operatorerelazionale:

> maggiore di<= minore o uguale a>= maggiore o uguale a== uguale a< minore di!= diverso da

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 17 / 48

Page 33: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

boolean

Due valori possibili, denotati dai letterali false e true

CondizioniLe espressioni booleane, cioe le espressioni che restituiscono un valoredi tipo boolean

Condizioni sempliciConfronti fra espressioni di tipo primitivo mediante un operatorerelazionale:

> maggiore di<= minore o uguale a>= maggiore o uguale a== uguale a< minore di!= diverso da

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 17 / 48

Page 34: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

boolean

Due valori possibili, denotati dai letterali false e true

CondizioniLe espressioni booleane, cioe le espressioni che restituiscono un valoredi tipo boolean

Condizioni sempliciConfronti fra espressioni di tipo primitivo mediante un operatorerelazionale:

> maggiore di<= minore o uguale a>= maggiore o uguale a== uguale a< minore di!= diverso da

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 17 / 48

Page 35: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = u;

u

v

String

"pippo"

u == v

viene valutata true

u e v fanno riferimento allostesso oggetto

u.equals(v)

viene valutata true

un oggetto e uguale a sestesso

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 19 / 48

Page 36: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = u;

u

v

String

"pippo"

u == v

viene valutata true

u e v fanno riferimento allostesso oggetto

u.equals(v)

viene valutata true

un oggetto e uguale a sestesso

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 19 / 48

Page 37: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = u;

u

v

String

"pippo"

u == v

viene valutata true

u e v fanno riferimento allostesso oggetto

u.equals(v)

viene valutata true

un oggetto e uguale a sestesso

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 19 / 48

Page 38: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = u;

u

v

String

"pippo"

u == v

viene valutata true

u e v fanno riferimento allostesso oggetto

u.equals(v)

viene valutata true

un oggetto e uguale a sestesso

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 19 / 48

Page 39: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = new String("pippo");

String

"pippo"

u

v String

"pippo"

u == v

viene valutata false

u e v fanno riferimento aoggetti distinti

u.equals(v)

viene valutata true

i due oggetti rappresentanola medesima stringa

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 21 / 48

Page 40: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = new String("pippo");

String

"pippo"

u

v String

"pippo"

u == v

viene valutata false

u e v fanno riferimento aoggetti distinti

u.equals(v)

viene valutata true

i due oggetti rappresentanola medesima stringa

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 21 / 48

Page 41: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = new String("pippo");

String

"pippo"

u

v String

"pippo"

u == v

viene valutata false

u e v fanno riferimento aoggetti distinti

u.equals(v)

viene valutata true

i due oggetti rappresentanola medesima stringa

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 21 / 48

Page 42: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Confronto fra riferimenti: == e equals

String u, v;u = new String("pippo");v = new String("pippo");

String

"pippo"

u

v String

"pippo"

u == v

viene valutata false

u e v fanno riferimento aoggetti distinti

u.equals(v)

viene valutata true

i due oggetti rappresentanola medesima stringa

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 21 / 48

Page 43: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Operatori booleani

Un tipo e caratterizzato dai suoi valori e dalle operazioni che si possonocompiere su di essi.

Il tipo boolean dispone di:

due operatori binari (boolean×boolean→boolean)

&& and (congiunzione)

|| or (disgiunzione)

un operatore unario (boolean→boolean)

! not (negazione)

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 23 / 48

Page 44: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Operatori booleani

Un tipo e caratterizzato dai suoi valori e dalle operazioni che si possonocompiere su di essi.

Il tipo boolean dispone di:

due operatori binari (boolean×boolean→boolean)

&& and (congiunzione)

|| or (disgiunzione)

un operatore unario (boolean→boolean)

! not (negazione)

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 23 / 48

Page 45: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Operatori booleani

Un tipo e caratterizzato dai suoi valori e dalle operazioni che si possonocompiere su di essi.

Il tipo boolean dispone di:

due operatori binari (boolean×boolean→boolean)

&& and (congiunzione)

|| or (disgiunzione)

un operatore unario (boolean→boolean)

! not (negazione)

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 23 / 48

Page 46: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Tavole di verita

x y x && yfalse false falsefalse true falsetrue false falsetrue true true

x y x || yfalse false falsefalse true truetrue false truetrue true true

x !xfalse truetrue false

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 25 / 48

Page 47: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Precedenze degli operatori booleani

L’operatore ! ha la massima precedenza e || la minima

Esempio

a && b || a && c equivalente a (a && b) || (a && c)

!a && b || a && !c equivalente a ((!a) && b) || (a && (!c))

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 27 / 48

Page 48: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Precedenze degli operatori booleani

L’operatore ! ha la massima precedenza e || la minima

Esempio

a && b || a && c equivalente a (a && b) || (a && c)

!a && b || a && !c equivalente a ((!a) && b) || (a && (!c))

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 27 / 48

Page 49: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Precedenze degli operatori booleani

L’operatore ! ha la massima precedenza e || la minima

Esempio

a && b || a && c equivalente a (a && b) || (a && c)

!a && b || a && !c equivalente a ((!a) && b) || (a && (!c))

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 27 / 48

Page 50: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Esempio di tavola di verita

! (a && b) || (a && c)

a b c ! (a && b) || (a && c)false false false true false true falsefalse false true true false true falsefalse true false true false true falsefalse true true true false true falsetrue false false true false true falsetrue false true true false true truetrue true false false true false falsetrue true true false true true true

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 29 / 48

Page 51: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Leggi di De Morgan

! (x && y) equivalente a !x || !y

!(x || y) equivalente a !x && !y

Esercizio

Dimostrare le leggi di De Morgan costruendo e confrontando le tavole diverita delle espressioni coinvolte.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 31 / 48

Page 52: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Leggi di De Morgan

! (x && y) equivalente a !x || !y

!(x || y) equivalente a !x && !y

Esercizio

Dimostrare le leggi di De Morgan costruendo e confrontando le tavole diverita delle espressioni coinvolte.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 31 / 48

Page 53: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Leggi di De Morgan

! (x && y) equivalente a !x || !y

!(x || y) equivalente a !x && !y

Esercizio

Dimostrare le leggi di De Morgan costruendo e confrontando le tavole diverita delle espressioni coinvolte.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 31 / 48

Page 54: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while

doistruzione

while (condizione)

condizioneE un’espressione di tipo boolean scritta obbligatoriamente traparentesi tonde

istruzioneE l’istruzione che dev’essere ripetuta: puo essere un’istruzione singolaoppure un blocco di istruzioni

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 32 / 48

Page 55: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while

doistruzione

while (condizione)

condizioneE un’espressione di tipo boolean scritta obbligatoriamente traparentesi tonde

istruzioneE l’istruzione che dev’essere ripetuta: puo essere un’istruzione singolaoppure un blocco di istruzioni

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 32 / 48

Page 56: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while

doistruzione

while (condizione)

condizioneE un’espressione di tipo boolean scritta obbligatoriamente traparentesi tonde

istruzioneE l’istruzione che dev’essere ripetuta: puo essere un’istruzione singolaoppure un blocco di istruzioni

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 32 / 48

Page 57: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while: esecuzione

doistruzione

while (condizione)

(1) Viene eseguito il corpo del ciclo, cioe istruzione

(2) Viene valutata l’espressione condizione

- se la condizione e vera, l’esecuzione prosegue dal Punto (1)

- se la condizione e falsa, il ciclo termina e l’esecuzione riprende dalla primaistruzione che segue l’istruzione do...while.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 33 / 48

Page 58: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while: esecuzione

doistruzione

while (condizione)

(1) Viene eseguito il corpo del ciclo, cioe istruzione

(2) Viene valutata l’espressione condizione

- se la condizione e vera, l’esecuzione prosegue dal Punto (1)

- se la condizione e falsa, il ciclo termina e l’esecuzione riprende dalla primaistruzione che segue l’istruzione do...while.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 33 / 48

Page 59: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while: esecuzione

doistruzione

while (condizione)

(1) Viene eseguito il corpo del ciclo, cioe istruzione

(2) Viene valutata l’espressione condizione

- se la condizione e vera, l’esecuzione prosegue dal Punto (1)

- se la condizione e falsa, il ciclo termina e l’esecuzione riprende dalla primaistruzione che segue l’istruzione do...while.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 33 / 48

Page 60: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while: esecuzione

doistruzione

while (condizione)

(1) Viene eseguito il corpo del ciclo, cioe istruzione

(2) Viene valutata l’espressione condizione

- se la condizione e vera, l’esecuzione prosegue dal Punto (1)

- se la condizione e falsa, il ciclo termina e l’esecuzione riprende dalla primaistruzione che segue l’istruzione do...while.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 33 / 48

Page 61: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while

doistruzione

while (condizione)

Osservazioni

L’esecuzione del ciclo termina quando la condizione risulta falsa

Il corpo del ciclo e sempre eseguito almeno una volta

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 34 / 48

Page 62: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione do...while

doistruzione

while (condizione)

Osservazioni

L’esecuzione del ciclo termina quando la condizione risulta falsa

Il corpo del ciclo e sempre eseguito almeno una volta

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 34 / 48

Page 63: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while

while (condizione)istruzione

condizioneE un’espressione booleana scritta obbligatoriamente tra parentesitonde

istruzioneE l’istruzione che dev’essere ripetuta; puo essere un’istruzione singolaoppure un blocco di istruzioni

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 48

Page 64: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while

while (condizione)istruzione

condizioneE un’espressione booleana scritta obbligatoriamente tra parentesitonde

istruzioneE l’istruzione che dev’essere ripetuta; puo essere un’istruzione singolaoppure un blocco di istruzioni

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 48

Page 65: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while

while (condizione)istruzione

condizioneE un’espressione booleana scritta obbligatoriamente tra parentesitonde

istruzioneE l’istruzione che dev’essere ripetuta; puo essere un’istruzione singolaoppure un blocco di istruzioni

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 48

Page 66: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while: esecuzione

while (condizione)istruzione

(1) Viene valutata l’espressione condizione

- Se la condizione e vera:

- viene eseguita istruzione (il corpo del ciclo)- l’esecuzione continua dal Punto (1)

- Se la condizione e falsa, il ciclo termina e l’esecuzione continua dalla primaistruzione che segue il ciclo while

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 36 / 48

Page 67: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while: esecuzione

while (condizione)istruzione

(1) Viene valutata l’espressione condizione

- Se la condizione e vera:

- viene eseguita istruzione (il corpo del ciclo)- l’esecuzione continua dal Punto (1)

- Se la condizione e falsa, il ciclo termina e l’esecuzione continua dalla primaistruzione che segue il ciclo while

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 36 / 48

Page 68: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while: esecuzione

while (condizione)istruzione

(1) Viene valutata l’espressione condizione

- Se la condizione e vera:

- viene eseguita istruzione (il corpo del ciclo)- l’esecuzione continua dal Punto (1)

- Se la condizione e falsa, il ciclo termina e l’esecuzione continua dalla primaistruzione che segue il ciclo while

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 36 / 48

Page 69: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while

while (condizione)istruzione

Osservazioni

L’esecuzione del ciclo termina quando condizione risulta falsa

istruzione puo essere eseguita anche zero volte

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 37 / 48

Page 70: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione while

while (condizione)istruzione

Osservazioni

L’esecuzione del ciclo termina quando condizione risulta falsa

istruzione puo essere eseguita anche zero volte

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 37 / 48

Page 71: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for

for (espr inizializzazione; condizione; espr incremento)istruzione

espr inizializzazioneE una lista di espressioni, separate virgola (,)

condizioneE una qualunque espressione booleana

espr incrementoE una lista di espressioni

istruzioneE una singola istruzione oppure un blocco di istruzioni

Tutte le componenti di un ciclo for sono opzionali

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 38 / 48

Page 72: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for

for (espr inizializzazione; condizione; espr incremento)istruzione

espr inizializzazioneE una lista di espressioni, separate virgola (,)

condizioneE una qualunque espressione booleana

espr incrementoE una lista di espressioni

istruzioneE una singola istruzione oppure un blocco di istruzioni

Tutte le componenti di un ciclo for sono opzionali

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 38 / 48

Page 73: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for

for (espr inizializzazione; condizione; espr incremento)istruzione

espr inizializzazioneE una lista di espressioni, separate virgola (,)

condizioneE una qualunque espressione booleana

espr incrementoE una lista di espressioni

istruzioneE una singola istruzione oppure un blocco di istruzioni

Tutte le componenti di un ciclo for sono opzionali

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 38 / 48

Page 74: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for

for (espr inizializzazione; condizione; espr incremento)istruzione

espr inizializzazioneE una lista di espressioni, separate virgola (,)

condizioneE una qualunque espressione booleana

espr incrementoE una lista di espressioni

istruzioneE una singola istruzione oppure un blocco di istruzioni

Tutte le componenti di un ciclo for sono opzionali

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 38 / 48

Page 75: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for

for (espr inizializzazione; condizione; espr incremento)istruzione

espr inizializzazioneE una lista di espressioni, separate virgola (,)

condizioneE una qualunque espressione booleana

espr incrementoE una lista di espressioni

istruzioneE una singola istruzione oppure un blocco di istruzioni

Tutte le componenti di un ciclo for sono opzionali

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 38 / 48

Page 76: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for

for (espr inizializzazione; condizione; espr incremento)istruzione

espr inizializzazioneE una lista di espressioni, separate virgola (,)

condizioneE una qualunque espressione booleana

espr incrementoE una lista di espressioni

istruzioneE una singola istruzione oppure un blocco di istruzioni

Tutte le componenti di un ciclo for sono opzionalic© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 38 / 48

Page 77: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for: esecuzione

for (espr inizializzazione; condizione; espr incremento)istruzione

(1) Vengono valutate le espressioni che compaiono in espr inizializzazione

(2) Viene valutata l’espressione condizione

- Se condizione e true:

- viene eseguito il blocco di istruzioni nel corpo del ciclo- vengono valutate le espressioni che compaiono in espr incremento- l’esecuzione prosegue dal Punto (2)

- Se la condizione e false, l’esecuzione riprende dalla prima istruzione chesegue l’istruzione for

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 39 / 48

Page 78: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for: esecuzione

for (espr inizializzazione; condizione; espr incremento)istruzione

(1) Vengono valutate le espressioni che compaiono in espr inizializzazione

(2) Viene valutata l’espressione condizione

- Se condizione e true:

- viene eseguito il blocco di istruzioni nel corpo del ciclo- vengono valutate le espressioni che compaiono in espr incremento- l’esecuzione prosegue dal Punto (2)

- Se la condizione e false, l’esecuzione riprende dalla prima istruzione chesegue l’istruzione for

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 39 / 48

Page 79: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for: esecuzione

for (espr inizializzazione; condizione; espr incremento)istruzione

(1) Vengono valutate le espressioni che compaiono in espr inizializzazione

(2) Viene valutata l’espressione condizione

- Se condizione e true:

- viene eseguito il blocco di istruzioni nel corpo del ciclo- vengono valutate le espressioni che compaiono in espr incremento- l’esecuzione prosegue dal Punto (2)

- Se la condizione e false, l’esecuzione riprende dalla prima istruzione chesegue l’istruzione for

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 39 / 48

Page 80: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione for: esecuzione

for (espr inizializzazione; condizione; espr incremento)istruzione

(1) Vengono valutate le espressioni che compaiono in espr inizializzazione

(2) Viene valutata l’espressione condizione

- Se condizione e true:

- viene eseguito il blocco di istruzioni nel corpo del ciclo- vengono valutate le espressioni che compaiono in espr incremento- l’esecuzione prosegue dal Punto (2)

- Se la condizione e false, l’esecuzione riprende dalla prima istruzione chesegue l’istruzione for

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 39 / 48

Page 81: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Espressioni di inizializzazione

L’espressione di inizializzazione puo contenere direttamente ladichiarazione della variabile di controllo:

for (int cont = 1; cont <= 10; cont = cont + 1)out.println(cont);

In questo caso la variabile cont non e definita al di fuori del ciclo.

E possibile dichiarare piu variabili ma devono essere tutte dello stesso tipo:

for (int i = 1, j = 0; i + j <= 20; i = i + 1, j = j + 1)out.println(i + j);

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 41 / 48

Page 82: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Espressioni di inizializzazione

L’espressione di inizializzazione puo contenere direttamente ladichiarazione della variabile di controllo:

for (int cont = 1; cont <= 10; cont = cont + 1)out.println(cont);

In questo caso la variabile cont non e definita al di fuori del ciclo.

E possibile dichiarare piu variabili ma devono essere tutte dello stesso tipo:

for (int i = 1, j = 0; i + j <= 20; i = i + 1, j = j + 1)out.println(i + j);

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 41 / 48

Page 83: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Espressioni di inizializzazione

L’espressione di inizializzazione puo contenere direttamente ladichiarazione della variabile di controllo:

for (int cont = 1; cont <= 10; cont = cont + 1)out.println(cont);

In questo caso la variabile cont non e definita al di fuori del ciclo.

E possibile dichiarare piu variabili ma devono essere tutte dello stesso tipo:

for (int i = 1, j = 0; i + j <= 20; i = i + 1, j = j + 1)out.println(i + j);

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 41 / 48

Page 84: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Espressioni di inizializzazione

L’espressione di inizializzazione puo contenere direttamente ladichiarazione della variabile di controllo:

for (int cont = 1; cont <= 10; cont = cont + 1)out.println(cont);

In questo caso la variabile cont non e definita al di fuori del ciclo.

E possibile dichiarare piu variabili ma devono essere tutte dello stesso tipo:

for (int i = 1, j = 0; i + j <= 20; i = i + 1, j = j + 1)out.println(i + j);

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 41 / 48

Page 85: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione break

Termina l’esecuzione del blocco dell’iterazione in cui compare.

for (int sx = 0, dx = s.length() - 1; sx < dx; sx = sx + 1,dx = dx - 1)

if (s.charAt(sx) != s.charAt(dx)) {palindroma = false;break;

}

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 43 / 48

Page 86: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione break

Termina l’esecuzione del blocco dell’iterazione in cui compare.

for (int sx = 0, dx = s.length() - 1; sx < dx; sx = sx + 1,dx = dx - 1)

if (s.charAt(sx) != s.charAt(dx)) {palindroma = false;break;

}

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 43 / 48

Page 87: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

PappagalloStanco.java

import prog.io.*;

class PappagalloStanco {

public static void main(String[] args) {//predisposizione dei canali di comunicazioneConsoleInputManager in = new ConsoleInputManager();ConsoleOutputManager out = new ConsoleOutputManager();

String messaggio;String risposta;

do {messaggio = in.readLine();risposta = messaggio.toUpperCase();out.println(risposta);if (messaggio.equals("stanco"))break;

} while (true);}

}

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 45 / 48

Page 88: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione continue

Provoca l’interruzione dell’esecuzione del blocco di istruzioni interne alciclo e il passaggio all’iterazione successiva.

Nel caso dei cicli while o do...while si saltano le restanti istruzioninel corpo del ciclo e si passa immediatamente alla valutazione dellacondizione.

Nel caso dei cicli for si passa a valutare le espressioni di incrementodel ciclo e poi alla valutazione della condizione.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 46 / 48

Page 89: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione continue

Provoca l’interruzione dell’esecuzione del blocco di istruzioni interne alciclo e il passaggio all’iterazione successiva.

Nel caso dei cicli while o do...while si saltano le restanti istruzioninel corpo del ciclo e si passa immediatamente alla valutazione dellacondizione.

Nel caso dei cicli for si passa a valutare le espressioni di incrementodel ciclo e poi alla valutazione della condizione.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 46 / 48

Page 90: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

L’istruzione continue

Provoca l’interruzione dell’esecuzione del blocco di istruzioni interne alciclo e il passaggio all’iterazione successiva.

Nel caso dei cicli while o do...while si saltano le restanti istruzioninel corpo del ciclo e si passa immediatamente alla valutazione dellacondizione.

Nel caso dei cicli for si passa a valutare le espressioni di incrementodel ciclo e poi alla valutazione della condizione.

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 46 / 48

Page 91: Basi del linguaggio - Capitolo 3 · 3 Il tipo primitivo boolean 4 Il ciclo do...while 5 Il ciclo while 6 Il ciclo for ... - false in caso contrario public boolean isMaggiore(Frazione

Esempio

int x, somma = 0;do {

x = in.readInt();if (x == 0)break;

if (x % 2 == 1)continue;

somma += x;} while (true);

c© 2005 Pearson Education Italia Capitolo 3 - Basi del linguaggio 48 / 48