Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
c 2005-2010 Pearson Education Italia Capitolo 3 - 1 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 2 / 44
Il tipo primitivo boolean
Due valori possibili, denotati dai letterali false e true
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 3 / 44
Il tipo primitivo boolean
Due valori possibili, denotati dai letterali false e true
Condizioni. Le espressioni booleane, cioè le espressioni che
restituiscono un valore di tipo boolean
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 3 / 44
Il tipo primitivo boolean
Due valori possibili, denotati dai letterali false e true
Condizioni. Le espressioni booleane, cioè le espressioni che
restituiscono un valore di tipo boolean
Condizioni semplici. Confronti fra espressioni di tipo primitivo
mediante un operatore relazionale:
> maggiore di
<= minore o uguale a
>= maggiore o uguale a
== uguale a
< minore di
!= diverso da
Esempio
(x + 3) <= (y * 5)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 3 / 44
Operatori booleani
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 4 / 44
Operatori booleani
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 4 / 44
Operatori booleani
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 4 / 44
Tavole di verità
x y x && y x y x || y
false false false false false false
false true false false true true
true false false true false true
true true true true true true
x !x
false true
true false
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 5 / 44
Precedenze degli operatori booleani
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 6 / 44
Precedenze degli operatori booleani
Esempio
a && b || a && c equivalente a (a && b) || (a && c)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 6 / 44
Precedenze degli operatori booleani
Esempio
a && b || a && c equivalente a (a && b) || (a && c)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 6 / 44
Esempio di tavola di verità
! (a && b) || (a && c)
a b c ! (a && b) || (a && c)
false false false true false true false
false false true true false true false
false true false true false true false
false true true true false true false
true false false true false true false
true false true true false true true
true true false false true false false
true true true false true true true
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 7 / 44
Leggi di De Morgan
! (x && y) equivalente a !x || !y
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 8 / 44
Leggi di De Morgan
! (x && y) equivalente a !x || !y
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 8 / 44
Leggi di De Morgan
! (x && y) equivalente a !x || !y
Esercizio
Dimostrare le leggi di De Morgan costruendo e confrontando le tavole di
verità delle espressioni coinvolte.
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 8 / 44
Il metodo equals per il confronto — esempio con String
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 9 / 44
Il metodo equals per il confronto — esempio con String
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 9 / 44
Il metodo equals per il confronto — esempio con String
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 9 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = u;
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 10 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = u;
String
v "pippo"
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 10 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = u;
String
v "pippo"
u == v
viene valutata true
u e v fanno riferimento allo
stesso oggetto
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 10 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = u;
String
v "pippo"
u == v u.equals(v)
viene valutata true viene valutata true
u e v fanno riferimento allo un oggetto è uguale a se
stesso oggetto stesso
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 10 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = new String("pippo");
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 11 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = new String("pippo");
String
u
"pippo"
v String
"pippo"
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 11 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = new String("pippo");
String
u
"pippo"
v String
"pippo"
u == v
viene valutata false
u e v fanno riferimento a
oggetti distinti
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 11 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = new String("pippo");
v = new String("pippo");
String
u
"pippo"
v String
"pippo"
u == v u.equals(v)
viene valutata false viene valutata true
u e v fanno riferimento a i due oggetti rappresentano
oggetti distinti la medesima stringa
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 11 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = "pippo";
v = "pippo";
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 12 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = "pippo";
v = "pippo";
u.equals(v)
viene valutata true
i due oggetti rappresentano
la medesima stringa
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 12 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = "pippo";
v = "pippo";
u.equals(v) u == v
viene valutata true viene valutata true
i due oggetti rappresentano perché?
la medesima stringa
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 12 / 44
Confronto fra riferimenti: == e equals
String u, v;
u = "pippo";
v = "pippo";
u.equals(v) u == v
viene valutata true viene valutata true
i due oggetti rappresentano perché?
la medesima stringa
Nota
Letterali stringa o espressioni costanti che danno luogo ad una medesima
sequenza di caratteri sono rappresentate come un unico oggetto String
dal compilatore
TanteStringhe.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 12 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 13 / 44
La classe Frazione
Contratto: Frazione
Le sue istanze modellano frazioni.
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 14 / 44
La classe Frazione
Contratto: Frazione
Le sue istanze modellano frazioni.
Costruttori
public Frazione(int x)
Costruisce una nuova Frazione il cui numeratore è uguale
all’argomento e il cui denominatore è 1.
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 14 / 44
La classe Frazione
Contratto: Frazione
Le sue istanze modellano frazioni.
Costruttori
public Frazione(int x)
Costruisce una nuova Frazione il cui numeratore è uguale
all’argomento e il cui denominatore è 1.
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 14 / 44
Metodi: operazioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 15 / 44
Metodi: operazioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 15 / 44
Metodi: operazioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 15 / 44
Metodi: operazioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 15 / 44
Metodi: operazioni di confronto
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 16 / 44
Metodi: operazioni di confronto
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 16 / 44
Metodi: operazioni di confronto
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 17 / 44
Metodi
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 17 / 44
Metodi
ProvaFrazione.java SommaFrazioni.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 17 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 18 / 44
L’istruzione if-else
if (condizione)
istruzione1
else
istruzione2
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 19 / 44
L’istruzione if-else
if (condizione)
istruzione1
else
istruzione2
condizione
È una qualunque espressione che restituisce un valore di tipo boolean
scritta obbligatoriamente tra parentesi tonde
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 19 / 44
L’istruzione if-else
if (condizione)
istruzione1
else
istruzione2
condizione
È una qualunque espressione che restituisce un valore di tipo boolean
scritta obbligatoriamente tra parentesi tonde
istruzione1, istruzione2
sono istruzioni singole oppure blocchi di istruzioni, cioè sequenze di
istruzioni racchiuse tra parentesi graffe
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 19 / 44
L’istruzione if-else: esecuzione
if (condizione)
istruzione1
else
istruzione2
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 20 / 44
L’istruzione if-else: esecuzione
if (condizione)
istruzione1
else
istruzione2
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 20 / 44
L’istruzione if-else: esecuzione
if (condizione)
istruzione1
else
istruzione2
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 20 / 44
L’istruzione if-else: esecuzione
if (condizione)
istruzione1
else
istruzione2
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 20 / 44
L’istruzione if: esecuzione
if (condizione)
istruzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 21 / 44
L’istruzione if: esecuzione
if (condizione)
istruzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 21 / 44
L’istruzione if: esecuzione
if (condizione)
istruzione
ConfrontoFrazioni.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 21 / 44
if-else innestati
int x, y, z;
...
if (x == 1)
if (y == 1)
z = x + y;
else
z = x * y;
else
z = x - y;
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 22 / 44
Il problema del dangling else
if (x == 1) if (y == 1) z = x + y; else z = x - y;
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 23 / 44
Il problema del dangling else
if (x == 1) if (y == 1) z = x + y; else z = x - y;
if (x == 1) if (x == 1)
if (y == 1) if (y == 1)
z = x + y; z = x + y;
else else
z = x - y; z = x - y;
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 23 / 44
Il problema del dangling else
if (x == 1) if (y == 1) z = x + y; else z = x - y;
if (x == 1) if (x == 1)
if (y == 1) if (y == 1)
z = x + y; z = x + y;
else else
z = x - y; z = x - y;
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 23 / 44
Esempio
if (x == 1)
if (y == 1)
z = x + y;
else
z = x - y;
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 24 / 44
Esempio
if (x == 1)
if (y == 1)
z = x + y;
else
z = x - y;
if (x == 1) {
if (y == 1)
z = x + y;
} else
z = x - y;
DanglingElse.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 24 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 25 / 44
L’istruzione do...while (iterazione in Java)
do
istruzione
while (condizione)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 26 / 44
L’istruzione do...while (iterazione in Java)
do
istruzione
while (condizione)
condizione
È un’espressione di tipo boolean scritta obbligatoriamente tra
parentesi tonde
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 26 / 44
L’istruzione do...while (iterazione in Java)
do
istruzione
while (condizione)
condizione
È un’espressione di tipo boolean scritta obbligatoriamente tra
parentesi tonde
istruzione
È l’istruzione che dev’essere ripetuta: può essere un’istruzione singola
oppure un blocco di istruzioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 26 / 44
L’istruzione do...while: esecuzione
do
istruzione
while (condizione)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 27 / 44
L’istruzione do...while: esecuzione
do
istruzione
while (condizione)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 27 / 44
L’istruzione do...while: esecuzione
do
istruzione
while (condizione)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 27 / 44
L’istruzione do...while: esecuzione
do
istruzione
while (condizione)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 27 / 44
L’istruzione do...while
do
istruzione
while (condizione)
Osservazioni
L’esecuzione del ciclo termina quando la condizione risulta falsa
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 28 / 44
L’istruzione do...while
do
istruzione
while (condizione)
Osservazioni
L’esecuzione del ciclo termina quando la condizione risulta falsa
SommaSequenza.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 28 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 29 / 44
L’istruzione while
while (condizione)
istruzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 30 / 44
L’istruzione while
while (condizione)
istruzione
condizione
È un’espressione booleana scritta obbligatoriamente tra parentesi
tonde
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 30 / 44
L’istruzione while
while (condizione)
istruzione
condizione
È un’espressione booleana scritta obbligatoriamente tra parentesi
tonde
istruzione
È l’istruzione che dev’essere ripetuta; può essere un’istruzione singola
oppure un blocco di istruzioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 30 / 44
L’istruzione while: esecuzione
while (condizione)
istruzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 31 / 44
L’istruzione while: esecuzione
while (condizione)
istruzione
- Se la condizione è vera:
- viene eseguita istruzione (il corpo del ciclo)
- l’esecuzione continua dal Punto (1)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 31 / 44
L’istruzione while: esecuzione
while (condizione)
istruzione
- Se la condizione è vera:
- viene eseguita istruzione (il corpo del ciclo)
- l’esecuzione continua dal Punto (1)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 31 / 44
L’istruzione while
while (condizione)
istruzione
Osservazioni
L’esecuzione del ciclo termina quando condizione risulta falsa
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 32 / 44
L’istruzione while
while (condizione)
istruzione
Osservazioni
L’esecuzione del ciclo termina quando condizione risulta falsa
PappagalloInstancabile.java PappagalloStanco.java
MediaSequenza.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 32 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 33 / 44
L’istruzione for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 34 / 44
L’istruzione for
espr inizializzazione
È una lista di espressioni, separate da virgola (,)
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 34 / 44
L’istruzione for
espr inizializzazione
È una lista di espressioni, separate da virgola (,)
condizione
È una qualunque espressione booleana
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 34 / 44
L’istruzione for
espr inizializzazione
È una lista di espressioni, separate da virgola (,)
condizione
È una qualunque espressione booleana
espr incremento
È una lista di espressioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 34 / 44
L’istruzione for
espr inizializzazione
È una lista di espressioni, separate da virgola (,)
condizione
È una qualunque espressione booleana
espr incremento
È una lista di espressioni
istruzione
È una singola istruzione oppure un blocco di istruzioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 34 / 44
L’istruzione for
espr inizializzazione
È una lista di espressioni, separate da virgola (,)
condizione
È una qualunque espressione booleana
espr incremento
È una lista di espressioni
istruzione
È una singola istruzione oppure un blocco di istruzioni
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 44
L’istruzione for: esecuzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 44
L’istruzione for: esecuzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 44
L’istruzione for: esecuzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 44
L’istruzione for: esecuzione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 35 / 44
Espressioni di inizializzazione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 36 / 44
Espressioni di inizializzazione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 36 / 44
Espressioni di inizializzazione
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 36 / 44
Espressioni di inizializzazione
È possibile dichiarare più variabili ma devono essere tutte dello stesso tipo:
Cornice.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 36 / 44
Simulazione di for tramite while
L’istruzione for può sempre essere sostituita da un assegnamento seguito
da un ciclo while
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 37 / 44
Simulazione di for tramite while
L’istruzione for può sempre essere sostituita da un assegnamento seguito
da un ciclo while
è equivalente a
int i = 0;
while (i <= 10) {
out.println(i);
i = i + 1;
}
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 37 / 44
Simulazione di for tramite while
L’istruzione for può sempre essere sostituita da un assegnamento seguito
da un ciclo while
è equivalente a
int i = 0;
while (i <= 10) {
out.println(i);
i = i + 1;
}
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 37 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 38 / 44
Il tipo primitivo char
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 39 / 44
Il tipo primitivo char
Letterali
Singoli caratteri racchiusi fra apici singoli (’)
Sequenze di escape
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 39 / 44
Il tipo primitivo char
Letterali
Singoli caratteri racchiusi fra apici singoli (’)
Sequenze di escape
Esempio
char c;
c = ’\u0041’; //rappresentazione esadecimale
//del carattere A
c = ’A’;
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 39 / 44
Operatori di confronto
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 40 / 44
Operatori di confronto
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 40 / 44
Il metodo charAt
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 41 / 44
Il metodo charAt
String s = "pluto";
CicloFor.java MergeString.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 41 / 44
Sommario: Basi del linguaggio
2 La classe Frazione
4 Il ciclo do...while
5 Il ciclo while
6 Il ciclo for
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 42 / 44
L’istruzione break
PappagalloStancoBreak.java
Palindromi1.java Palindromi2.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 43 / 44
L’istruzione continue
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 44 / 44
L’istruzione continue
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 44 / 44
L’istruzione continue
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 44 / 44
L’istruzione continue
Ciclo1.java Ciclo2.java
c 2005-2010 Pearson Education Italia Capitolo 3 - Basi del linguaggio 44 / 44