introduzione a javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. ·...
TRANSCRIPT
![Page 1: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/1.jpg)
Introduzione a Java e all'ambiente di sviluppo
Programmazione 2, a.a. 2006-2007
Nota: per esclusivo uso interno al corso, riferimenti bibliografici forniti a lezione
![Page 2: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/2.jpg)
Programmazione 2, esercitazione 1 2
Schema minimo di un’applicazione
public class Hello {public static void main(String args[]){
Hello test1 = new Hello();}Hello(){
// in questo blocco vanno scritte le istruzioni
System.out.println(“Hello!”);}
}
![Page 3: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/3.jpg)
Programmazione 2, esercitazione 1 3
Tipi di dati
Definiscono i metodi di memorizzazione dei dati disponibili per rappresentare le informazioni e il modo in cui queste sono interpretate. Sono strettamente connessi alla memorizzazione delle variabili, infatti determinano il modo in cui il compilatore interpreta il contenuto della memoria.
Per creare una variabile in memoria, dobbiamo dichiararla specificandone un identificatore e il tipo:
Tipo idenditificatore [, identificatore];
![Page 4: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/4.jpg)
Programmazione 2, esercitazione 1 4
Dichiarazione di variabili
double salario;int i,j;char carattereFinale;boolean trovato;int matrice[][];String titolo;
![Page 5: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/5.jpg)
Programmazione 2, esercitazione 1 5
Dichiarazione di una variabile
double salario;int i,j;char carattereFinale;boolean trovato;int matrice[][];String titolo;
tipo della variabile
![Page 6: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/6.jpg)
Programmazione 2, esercitazione 1 6
Dichiarazione di una variabile
double salario;int i,j;char carattereFinale;boolean trovato;int matrice[][];String titolo;
I nomi (identificatori) delle variabili sono di lunghezza arbitraria, devono iniziare con una lettera (o con il carattere _) e possono contenere caratteri alfanumerici.Non possono essere delle parole-chiave del linguaggio.
nome della variabile
![Page 7: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/7.jpg)
Programmazione 2, esercitazione 1 7
Keywords
In Java sono parole riservate (o parole-chiave):
abstract continue for new switchassert default goto package synchronizedboolean do if private thisbreak double implements protected throwbyte else import public throwscase enum instanceof return transientcatch extends int short trychar final interface static voidclass finally long strictfp volatileconst float native super while
![Page 8: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/8.jpg)
Programmazione 2, esercitazione 1 8
Dichiarazione di una variabile
double salario;int i,j;char carattereFinale;boolean trovato;int matrice[][];String titolo;
tipi di dato semplici (o primitivi)
![Page 9: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/9.jpg)
Programmazione 2, esercitazione 1 9
Dichiarazione di una variabile
double salario;int i,j;char carattereFinale;boolean trovato;int matrice[][];String titolo;
tipi di dato composti
![Page 10: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/10.jpg)
Programmazione 2, esercitazione 1 10
Assegnamento di un valore ad una variabile
salario = 1500.00;i = 4;carattereFinale = ‘L’;trovato = false;
![Page 11: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/11.jpg)
Programmazione 2, esercitazione 1 11
Tipi di dati primitivi
26.77e364 bitdouble
87.363F32 bitfloat
8834L[-2^63, +2^63-1]64 bitlong
187[-2^31, +2^31-1]32 bitint
8[-2^15, +2^15-1]16 bitshort
3[-128, +127]8 bitbyte
‘c’16 bitchar
falsetrue / false-boolean
esempiovaloridimensione
![Page 12: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/12.jpg)
Programmazione 2, esercitazione 1 12
Tipi di dati primitivi
falsetrue / false-boolean
esempiovaloridimensione
boolean a, b, c;a = false;b = !a; //negazione
c = a | b; //valuta sia a che bc = a && !b; //non sempre valuta b
![Page 13: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/13.jpg)
Programmazione 2, esercitazione 1 13
Tipi di dati primitivi
‘c’16 bitchar
esempiovaloridimensione
char aChar;aChar = ‘S’;
char anotherChar = ‘B’;
![Page 14: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/14.jpg)
Programmazione 2, esercitazione 1 14
Tipi di dati primitivi
8834L[-2^63, +2^63-1]64 bitlong
187[-2^31, +2^31-1]32 bitint
8[-2^15, +2^15-1]16 bitshort
3[-128, +127]8 bitbyte
esempiovaloridimensione
//tipi interiint i, j, k;long n = 178L;i = 0; j=++i; k = -j;
k= 512 % 22; //resto della divisione k +=4; // equivale a k=k+4;
![Page 15: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/15.jpg)
Programmazione 2, esercitazione 1 15
Tipi di dati primitivi
26.77e364 bitdouble
87.363F32 bitfloat
esempiovaloridimensione
double a, b;float c;
a = 37.266;b = 37.266D;c = 87.363F;
![Page 16: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/16.jpg)
Programmazione 2, esercitazione 2 16
Array
Un array è una struttura dati che raccoglie una collezione di valori dello stesso tipo. A ciascun valore si accede tramite un indice intero. Esempio: se a è un array di int, a[i] è l’i-esimo intero dell’array.
0 1 2 3 4 5 6 7 8 9
elemento di indice 3
indici
array di lunghezza 10
0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9
elemento di indice 3
indici
array di lunghezza 10
![Page 17: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/17.jpg)
Programmazione 2, esercitazione 2 17
Esempi
int[] vettoreDiInteri;vettoreDiInteri = new int[10];//dereferenziazionevettoreDiInteri[1] = 10;vettoreDiInteri[9] = 27;
![Page 18: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/18.jpg)
Programmazione 2, esercitazione 2 18
Esempi
//scorrere l’array:
for(int i=0; i<a.length; i++) {
a[i] = i+1;
}
char[] gatto = {‘g’,’a’,’t’,’t’,’o’};
int lunghezzaParola = gatto.length;
int[] a; int b[]; //dichiaro le variabili a e b
a = new int[60]; //iniz. di un array di 60 int
a[0] = 1; a[59] = 66; //dereferenziazione
a[60] = 90; // errore in fase di esecuzione
// (in questo caso gli indici vanno da 0 a 59)
![Page 19: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/19.jpg)
Programmazione 2, esercitazione 2 19
Esempi
int[] vettoreDiInteri2 = vettoreDiInteri;
![Page 20: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/20.jpg)
Programmazione 2, esercitazione 2 20
Esempi
int[] primi = { 2,3,5,7,11,13 };
//assegnamento:
int[] numeriFortunati = primi;
numeriFortunati[3] = 8; //attenzione, che valore ha
//primi[3]?
entrambe le variabili,
primi e numeriFortunati,
fanno riferimento
allo stesso array
![Page 21: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/21.jpg)
Programmazione 2, esercitazione 1 21
Blocchi e visibilità delle variabili
Un blocco di istruzioni è una lista di istruzioni racchiusa tra parentesi graffe. I blocchi definiscono lo scope delle variabili.Lo scope (o ambito di visibilità) di una variabile è la sezione di codice in cui il nome di una variabile può essere utilizzato. Esempi:
public static void main(String[] args) { int n; ... { int k; ... } //k non sarà più visibile }
![Page 22: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/22.jpg)
Programmazione 2, esercitazione 1 22
Blocchi e visibilità delle variabili
Un blocco di istruzioni è una lista di istruzioni racchiusa tra parentesi graffe. I blocchi definiscono lo scope delle variabili.Lo scope (o ambito di visibilità) di una variabile è la sezione di codice in cui il nome di una variabile può essere utilizzato. Esempi:
public static void main(String[] args) { int n; ... { int k; int n; //errore!! variabile già definita } }
![Page 23: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/23.jpg)
Programmazione 2, esercitazione 1 23
Definizione di un metodo
tipo_restituito nomeMetodo( argomenti ){
// istruzioni}
un metodo è univocamente identificato dal nome e dal tipo e numero degli argomenti (firma del metodo). Sono due metodi differenti:
public int max(int a, int b, int c){ ... }public int max(double a, double b){ ... }
max(3,5,99); // invoca il primomax(3.0, 99.0); //invoca il secondo
![Page 24: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/24.jpg)
Programmazione 2, esercitazione 1 24
Strutture di controllo
Costrutti iterativi:- ciclo for- ciclo while - ciclo do .. while
Costrutti condizionali:- if .. else- switch
![Page 25: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/25.jpg)
Programmazione 2, esercitazione 1 25
Costrutti iterativi: for
I cicli for costituiscono uno strumento per ripetere una sezione di codice per un determinato numero di volte (finché una certa condizione è vera).
for (EspressioneInizializzazione; CondizioneCiclo; EspressioneIncremento)
Istruzione;
ciascuna delle istruzioni: inizializzazione, istruzione booleana e passo può essere vuota, es:
for ( ; ; ) { // infinite loop
...
}
![Page 26: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/26.jpg)
Programmazione 2, esercitazione 1 26
Esempio
public class Countdown {
public static void main(String[] args) { new Countdown ();}
Countdown(){
contaAllaRovesciaDa(10);
}
public void contaAllaRovesciaDa(int n){
for (int i = n; i >= 0; i--) {
// stampo i
System.out.println(“Counting down: “ + i);
}
}
}
![Page 27: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/27.jpg)
Programmazione 2, esercitazione 1 27
Esempio
public class ForDemo {
public static void main(String[] args) { new ForDemo();}
ForDemo(){
for (int i = 0, j=3; i <= 5; i++, j-=2) {
System.out.println(i + “ “ + j);
}
}
}
Esercizio: scrivere un’applicazione che stampi il prodotto dei primi n numeri naturali, dove n è un numero intero positivo.
Esercizio: scrivere un’applicazione che stampi la tavola pitagorica delle tabelline da 1 ad un numero n, dove n è un numero intero positivo.
![Page 28: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/28.jpg)
Programmazione 2, esercitazione 2 28
Esercizio
Scrivere un metodo che, preso come parametro un array di caratteri, ne stampi a video l’eco, diminuendo ogni volta la lunghezza della parola. Scrivere un’applicazione che invochi il metodo.
>java Eco ParolaParolParoParPaP
![Page 29: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/29.jpg)
Programmazione 2, esercitazione 1 29
Costrutti iterativi: while e do…while
while (condizione) { // istruzioni }
do { // istruzioni } while (condizione) ;
![Page 30: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/30.jpg)
Programmazione 2, esercitazione 1 30
Costrutti iterativi: while
public class WhileDemo { public static void main(String[] args) { new WhileDemo();} WhileDemo(){ double ammontare, rata, goal, interestRate; // ... int years = 0; while (ammontare < goal) { ammontare += rata; double interesse = ammontare * interestRate / 100; ammontare += interesse; years++; } System.out.println(“Anni totali: ” + years); } }
![Page 31: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/31.jpg)
Programmazione 2, esercitazione 1 31
Costrutti iterativi: do, whilepublic class DoWhileDemo {
public static void main(String[] args) { new DoWhileDemo(); }
DoWhileDemo(){
double ammontare, rata, interestRate;
// ...
int years = 0; int totalYears = 8;
do {
ammontare += rata;
double interesse = ammontare * interestRate / 100;
ammontare += interesse;
years++;
} while (years < totalYears);
System.out.println( “Dopo ”+totalYears+”anni : ”+ ammontare);
}
}
![Page 32: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/32.jpg)
Programmazione 2, esercitazione 1 32
Esercizi
Esercizio: scrivere un’applicazione che calcoli la differenza tra un numero intero n ed il primo intero > n che sia contemporaneamente divisibile per 9, multiplo di 5 e che, diviso per 7 non dia resto 3. Risolvere l’esercizio definendo ed utilizzando degli opportuni metodi.
Esercizio: riscrivere l’esercizio di pagina 27 utilizzando il costrutto while al posto del costrutto for.
Esercizio: modificare l’esercizio di pagina 30 in modo da considerare rate mensili e calcolo dell’interesse semestrale.
![Page 33: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/33.jpg)
Programmazione 2, esercitazione 2 33
if .. else
I costrutti condizionali permettono di specificare una sezione di codice che va eseguita solo in particolari condizioni.
if (espressioneCondizionale) {
//istruzioni
}
![Page 34: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/34.jpg)
Programmazione 2, esercitazione 2 34
if .. else
I costrutti condizionali permettono di specificare una sezione di codice che va eseguita solo in particolari condizioni.
if (espressioneCondizionale) {
//istruzioni
}
else {
//istruzioni
}
![Page 35: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/35.jpg)
Programmazione 2, esercitazione 2 35
if .. else
I costrutti condizionali permettono di specificare una sezione di codice che va eseguita solo in particolari condizioni.if (espressioneCondizionale) {
//istruzioni
}
else if (altraEspressioneCondizionale) {
//istruzioni
} // ...
else {
//istruzioni
}
![Page 36: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/36.jpg)
Programmazione 2, esercitazione 2 36
Costrutti condizionali: if, elsepublic class IfElseDemo {
public static void main(String[] args) { new IfElseDemo(); }
IfElseDemo(){
int punteggio = 76;
char voto;
if (punteggio >= 90) { voto = 'A'; }
else if (punteggio >= 80) { voto = 'B'; } // ...
else { voto = 'F'; }
System.out.println(“Voto = " + voto);
System.out.print(“Il punteggio e’ ");
System.out.println( punteggio<60 ? “basso” : “alto”);
}
}
![Page 37: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/37.jpg)
Programmazione 2, esercitazione 2 37
Costrutti condizionali: if, elsepublic class IfElseDemo {
public static void main(String[] args) { new IfElseDemo(); }
IfElseDemo(){
int punteggio = 76;
char voto;
if (punteggio >= 90) { voto = 'A'; }
else if (punteggio >= 80) { voto = 'B'; } // ...
else { voto = 'F'; }
System.out.println(“Voto = " + voto);
System.out.print(“Il punteggio e’ ");
System.out.println( punteggio<60 ? “basso” : “alto”);
}
}
espressione condizionale: l’operatore ? permette di rendere
condizionale l’assegnamento di un valore
![Page 38: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/38.jpg)
Programmazione 2, esercitazione 2 38
Costrutti condizionali: switchpublic class SwitchDemo {
public static void main(String[] args) { new SwitchDemo(); }
SwitchDemo(){
stampaMese(3); stampaMese(5);
}
public void stampaMese(int mese){
switch (mese) {
case 1: System.out.println(“Gennaio"); break;
case 2: System.out.println(“Febbraio"); break;
…
default: System.out.println(“mese non valido!”);
}
} }
![Page 39: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/39.jpg)
Programmazione 2, esercitazione 1 39
Gestione dei file sorgente (.java) e bytecode (.class)
Gerarchia di directory:
package it.unitn.prog2;
public class ForDemo{ //...}
![Page 40: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/40.jpg)
Programmazione 2, esercitazione 2 40
Passaggio di parametri alla riga di comando
Sono delle stringhe di testo passate al programma in fase di esecuzione tramite la riga di comando. Vengono passati come parametri al metodo main:
public class SimpleEcho {public static void main (String[] args){
if(args.length>0)System.out.println(args[0]);
}} >java SimpleEcho Parola
Parola>
![Page 41: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/41.jpg)
Programmazione 2, esercitazione 2 41
Esercizi
•Scrivere un metodo che prenda 2 parametri: un array di caratteri e un carattere e torni il numero di occorrenze del carattere nell’array.•Scrivere un metodo che prenda come parametro un array di caratteri e ritorni il carattere che compare il maggior numero di volte; utilizzare il metodo definito sopra.•Scrivere un metodo che, preso come parametro un array di double, ne calcoli e restituisca la media aritmetica.•Scrivere un metodo che calcoli il prodotto degli elementi presenti sulla diagonale di una matrice quadrata.
Scrivere un’applicazione che testi questi metodi. Dare all’utente la possibilità di scegliere quale metodo vuole testare utilizzando i parametri passati alla riga di comando.
![Page 42: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/42.jpg)
Programmazione 2, esercitazione 2 42
Ambiente di sviluppo: Borland JBuilder2005
Come avviare l'applicativoCome creare un progettoEsercizio
![Page 43: Introduzione a Javalatemar.science.unitn.it/marco/wiki_prog2/images/e/e4/... · 2007. 3. 14. · Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota:](https://reader034.vdocumenti.com/reader034/viewer/2022051910/5fffdfe0de02f64f4f45f9ce/html5/thumbnails/43.jpg)
Programmazione 2, esercitazione 1 43
Approfondimenti
Language Basicssul Java Tutorial della SUN:
http ://java.sun.com/docs/books/ tutorial/java/nutsandbolts/index.html