Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon,...
-
Upload
cristiana-pinto -
Category
Documents
-
view
221 -
download
2
Transcript of Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon,...
![Page 1: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/1.jpg)
Capitolo 6Iterazione
Lucidi relativi al volume:
Java – Guida alla programmazione James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
![Page 2: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/2.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Cicli Java Opzioni
while do-while for
Consentono ai programmi di controllare quante volte viene eseguito un elenco di istruzioni
![Page 3: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/3.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Media Problema
Estrarre un elenco di numeri positivi da inserimenti standard e calcolarne la media I numeri sono uno per riga Un numero negativo funge da indicatore del fatto che
non vi sono altri numeri da elaborare
Osservazioni Non è possibile fornire codice sufficiente utilizzando solo
assegnazioni e costrutti condizionali per risolvere il problema Non si conosce la grandezza dell'elenco da elaborare
È necessaria la capacità di ripetere il codice come necessario
![Page 4: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/4.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Media Problema
Estrarre un elenco di numeri positivi da inserimenti standard e calcolarne la media I numeri sono uno per riga Un numero negativo funge da indicatore del fatto che
non vi sono altri numeri da elaborare
Algoritmo Preparazione all'elaborazione Ottenere l'input Mentre esiste un input da elaborare{
Elaborare l'input corrente Ottenere l'input successivo
} Eseguire l'elaborazione finale
![Page 5: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/5.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Media Problema
Estrarre un elenco di numeri positivi da inserimenti standard e calcolarne la media I numeri sono uno per riga Un numero negativo funge da indicatore del fatto che
non vi sono altri numeri da elaborare
Esempio di esecuzioneEnter positive numbers one per line.Indicate end of list with a negative number.4.50.51.3-1Average 2.1
![Page 6: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/6.jpg)
public class NumberAverage {// main(): punto di ingresso per l'applicazionepublic static void main(String[] args)
throws IOException {// imposta l'elaborazione dell'elenco
// richiede i valori all'utente
// ottiene il primo valore
// elabora i valori uno ad unowhile (value >= 0) {
// aggiunge il valore al totale// elaborato un altro valore// prepara l'iterazione successiva - ottiene
il valore successivo}
// visualizza il risultatoif (valuesProcessed > 0)
// calcola e visualizza la mediaelse
// indica che non esistono medie da visualizzare}
}
![Page 7: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/7.jpg)
System.out.println("Enter positive numbers 1 per line.\n" + "Indicate end of the list with a negative
number.");
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
int valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
![Page 8: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/8.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Sintassi e semantica di while
Logical expression thatdetermines whether Action
is to be executed — ifExpression evaluates to
true, then Action isexecuted; otherwise, the
loop is terminated
while ( Expression ) Action
Action is either a singlestatement or a statementlist within braces. The actionis also known as the body ofthe loop. After the body is
executed, the test expressionis reevaluated. If the
expression evaluates to true,the body is executed again.
The process repeats until thetest expression evaluates to
false
L'azione può essere un'unica istruzione o un elenco di istruzioni racchiuse tra
parentesi graffe. L'azione si chiama anche corpo del
ciclo. Dopo l'esecuzione del corpo, viene ricalcolata
l'espressione. Se l'espressione dà come
risultato true, viene eseguito di nuovo il corpo del ciclo. Il
processo si ripete finché l'espressione dà come
risultato false.
Espressione logica che determina se l'Azione va
eseguita. Se l'espressione dà come risultato true, viene
eseguita l'azione; diversamente, il ciclo
termina.
![Page 9: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/9.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srlSemantica di while per il problema della media
// process values one-by-onewhile (value >= 0) { // add value to running total valueSum += value; // processed another value ++valuesProcessed; // prepare to iterate -- get the next input value = Double.parseDouble(stdin.readLine());}
Test expression is evaluated at thestart of each iteration of the loop.Its value indicates whether there is anumber to process
If test expression is true, these statementsare executed. Afterward, the test expression
is reevaluated and the process repeats
L'espressione viene calcolata all'inizio di ogni iterazione del ciclo. Il valore dell'espressione indica se esiste un numero da elaborare
Se l'espressione dà come risultato true, vengono eseguite queste istruzioni.
Dopodiché, l'espressione viene ricalcolata e il processo si ripete
![Page 10: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/10.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Semantica di while
Expr essi on
Act i on
true false
Expression isevaluated at the
start of eachiteration of the
loop
If Expression istrue, Action is
executed If Expression isfalse, program
executioncontinues withnext statement
L'espressione viene calcolata all'inizio di ogni iterazione del
ciclo
Se l'espressione dà come
risultato false, l'esecuzione del
programma continua con l'istruzione successiva
Se l'epressione
dà come risultato true,
viene eseguita l'azione
![Page 11: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/11.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzioneint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
![Page 12: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/12.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzioneint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
0valuesProcessed
![Page 13: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/13.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzioneint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
0valuesProcessed
0
![Page 14: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/14.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
0valuesProcessed
0
4.5
![Page 15: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/15.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
0valuesProcessed
0
4.5
![Page 16: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/16.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
0valuesProcessed
0
4.5
4.5
![Page 17: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/17.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
0valuesProcessed
4.5
4.5
1
![Page 18: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/18.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
1valuesProcessed
4.5
4.50.5
![Page 19: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/19.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
1valuesProcessed
4.5
0.5
![Page 20: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/20.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
1valuesProcessed
4.5
0.5
5.0
![Page 21: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/21.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
1valuesProcessed
5.0
0.5
2
![Page 22: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/22.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
2valuesProcessed
5.0
0.51.3
![Page 23: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/23.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
2valuesProcessed
5.0
1.3
![Page 24: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/24.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
2valuesProcessed
5.0
1.3
6.3
![Page 25: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/25.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
2valuesProcessed
6.3
1.3
3
![Page 26: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/26.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
3valuesProcessed
6.3
1.3-1
![Page 27: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/27.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
3valuesProcessed
6.3
-1
![Page 28: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/28.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
3valuesProcessed
6.3
-1
![Page 29: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/29.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
3valuesProcessed
6.3
-1
average 2.1
![Page 30: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/30.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Tracciaint valuesProcessed = 0;double valueSum = 0;
double value = Double.parseDouble(stdin.readLine());
while (value >= 0) {valueSum += value;++valuesProcessed;value = Double.parseDouble(stdin.readLine());
}
if (valuesProcessed > 0){double average = valueSum / valuesProcessed;System.out.println("Average: " + average);
}else{
System.out.println("No list to average");}
valueSum
value
Si supponga che l'input contenga: 4.5 0.5 1.3 -1
3valuesProcessed
6.3
-1
average 2.1
![Page 31: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/31.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Conversione del testo in minuscolepublic static void main(String[] args) throws
IOException {BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter input to be converted:");
String converted = "";
String currentLine = stdin.readLine();
while (currentLine != null) {String currentConversion =
currentLine.toLowerCase();converted += (currentConversion + "\n");currentLine = stdin.readLine();
}
System.out.println("\nConversion is:\n" +
converted);}
![Page 32: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/32.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Esempio di esecuzione
Si è premuto CTRL+Z, la sequenza di escape
di Windows per indicare la fine del file
![Page 33: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/33.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia del programmapublic static void main(String[] args) throws
IOException {BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter input to be converted:");
String converted = "";
String currentLine = stdin.readLine();
while (currentLine != null) {String currentConversion =
currentLine.toLowerCase();converted += (currentConversion + "\n");currentLine = stdin.readLine();
}
System.out.println("\nConversion is:\n" +
converted);}
![Page 34: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/34.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia del programmapublic static void main(String[] args) throws
IOException {BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter input to be converted:");
String converted = "";
String currentLine = stdin.readLine();
while (currentLine != null) {String currentConversion =
currentLine.toLowerCase();converted += (currentConversion + "\n");currentLine = stdin.readLine();
}
System.out.println("\nConversion is:\n" +
converted);}
![Page 35: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/35.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia del programmapublic static void main(String[] args) throws
IOException {BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter input to be converted:");
String converted = "";
String currentLine = stdin.readLine();
while (currentLine != null) {String currentConversion =
currentLine.toLowerCase();converted += (currentConversion + "\n");currentLine = stdin.readLine();
}
System.out.println("\nConversion is:\n" +
converted);}
![Page 36: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/36.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia del programmapublic static void main(String[] args) throws
IOException {BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter input to be converted:");
String converted = "";
String currentLine = stdin.readLine();
while (currentLine != null) {String currentConversion =
currentLine.toLowerCase();converted += (currentConversion + "\n");currentLine = stdin.readLine();
}
System.out.println("\nConversion is:\n" +
converted);}
![Page 37: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/37.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia del programma
Representation of lower caseconversion of current input line
converted += (currentConversion + "\n");
The append assignment operator updates the representationof converted to include the current input line
Newline character is neededbecause method readLine()"strips" them from the input
L'operatore di concatenamento aggiorna la rappresentazione di converted per includere la riga di input corrente
Rappresentazione della conversione in minuscole
della riga di input corrente
Il carattere di nuova riga è necessario perché il metodo readLine() elimina dall'input
questo carattere
![Page 38: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/38.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Conversione del testo in minuscolepublic static void main(String[] args) throws
IOException {BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter input to be converted:");
String converted = "";
String currentLine = stdin.readLine();
while (currentLine != null) {String currentConversion =
currentLine.toLowerCase();converted += (currentConversion + "\n");currentLine = stdin.readLine();
}
System.out.println("\nConversion is:\n" +
converted);}
![Page 39: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/39.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Progettazione di cicli Domande da porsi nella progettazione e nell'analisi dei cicli
Quale inizializzazione è necessaria per l'espressione di test del ciclo?
Quale inizializzazione è necessaria per l'elaborazione del ciclo?
Che cosa provoca la fine del ciclo?
Quali azioni dovrebbe eseguire il ciclo?
Quali azioni sono necessarie per prepararsi alla successiva iterazione del ciclo?
Quali condizioni sono true e quali false quando il ciclo viene terminato?
Quando termina il ciclo quali azioni sono necessarie per preparare la successiva elaborazione del programma?
![Page 40: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/40.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
L'istruzione for
int currentTerm = 1;
for (int i = 0; i < 5; ++i) {System.out.println(currentTerm);currentTerm *= 2;
}
![Page 41: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/41.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
L'istruzione for
int currentTerm = 1;
for (int i = 0; i < 5; ++i) {System.out.println(currentTerm);currentTerm *= 2;
}
Initialization stepis performed onlyonce -- just prior
to the firstevaluation of thetest expression
L'inizializzazione viene effettuata solo una volta, appena prima
del primo calcolo dell'espressione
di prova
![Page 42: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/42.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
L'istruzione for
int currentTerm = 1;
for (int i = 0; i < 5; ++i) {System.out.println(currentTerm);currentTerm *= 2;
}
The body of the loop iterateswhile the test expression istrueInitialization step
is performed onlyonce -- just prior
to the firstevaluation of thetest expression
L'inizializzazione viene effettuata solo una volta, appena prima
del primo calcolo dell'espressione
di prova
Il corpo del ciclo itera finché l'espressione di prova è true
![Page 43: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/43.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
L'istruzione for
int currentTerm = 1;
for (int i = 0; i < 5; ++i) {System.out.println(currentTerm);currentTerm *= 2;
}
The body of the loop iterateswhile the test expression istrueInitialization step
is performed onlyonce -- just prior
to the firstevaluation of thetest expression
The body of the loop displays thecurrent term in the number series.It then determines what is to be thenew current number in the series
L'inizializzazione viene effettuata solo una volta, appena prima
del primo calcolo dell'espressione
di prova
Il corpo del ciclo visualizza il termine corrente nella serie di
numeri, e determina quindi qual è il numero corrente
Il corpo del ciclo itera finché l'espressione di prova è true
![Page 44: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/44.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
L'istruzione for
int currentTerm = 1;
for (int i = 0; i < 5; ++i) {System.out.println(currentTerm);currentTerm *= 2;
}
After each iteration of thebody of the loop, the updateexpression is reevaluated
The body of the loop iterateswhile the test expression istrueInitialization step
is performed onlyonce -- just prior
to the firstevaluation of thetest expression
The body of the loop displays thecurrent term in the number series.It then determines what is to be thenew current number in the series
L'inizializzazione viene effettuata solo una volta, appena prima
del primo calcolo dell'espressione
di prova
Il corpo del ciclo visualizza il termine corrente nella serie di
numeri, e determina quindi qual è il numero corrente
Dopo ogni iterazione del corpo del ciclo, viene
ricalcolata l'espressione aggiornata
Il corpo del ciclo itera finché l'espressione di prova è true
![Page 45: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/45.jpg)
For Expr
Act i on
true false
For I ni t
Post Expr
Evaluated onceat the beginning
of the forstatements's
executionThe ForExpr is
evaluated at thestart of each
iteration of theloop
If ForExpr is true,Action isexecuted
After the Actionhas completed,
thePostExpression
is evaluated
If ForExpr isfalse, program
executioncontinues withnext statement
After evaluating thePostExpression, the next
iteration of the loop starts
Calcolato una volta all’inizio
dell’esecuzione dell’istruzione
forL’espressione ForExpr viene
calcolata all’inizio di ogni
iterazione
Se ForExpr è falsa,
l’esecuzione del
programma continua
con l’istruzione seguente
Se ForExpr è vera, viene
eseguita l’azione
Dopo che l’azione è
completata, viene
calcolata PostExpr
Dopo il calcolo di PostExpr, inizia l’iterazione successiva
del ciclo
![Page 46: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/46.jpg)
Sintassi dell'istruzione for
Logical test expression that determines whether the action and update step areexecuted
for ( ForInit ; ForExpression ; ForUpdate ) Action
Update step is performed afterthe execution of the loop body
Initialization step prepares for thefirst evaluation of the test
expression
The body of the loop iterates wheneverthe test expression evaluates to true
Espressione logica che determina se sono state eseguite l'azione e l'aggiornamento
L'inizializzazione prepara il programma per il primo calcolo
dell'espressione di prova
L'aggiornamento viene svolto dopo l'esecuzione del corpo
del ciclo
Il corpo del ciclo itera ogni volta che l'espressione di prova dà come
risultato true
![Page 47: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/47.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i 0
![Page 48: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/48.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i 0
![Page 49: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/49.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0
i 0
![Page 50: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/50.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println(“i is " + i);
}
System.out.println(“all done");
i is 0
i 0
![Page 51: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/51.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0
i 1
![Page 52: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/52.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0
i 1
![Page 53: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/53.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1
i 1
![Page 54: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/54.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1
i 1
![Page 55: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/55.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1
i 2
![Page 56: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/56.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1
i 2
![Page 57: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/57.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1i is 2
i 2
![Page 58: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/58.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1i is 2
i 2
![Page 59: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/59.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1i is 2
i 3
![Page 60: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/60.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1i is 2
i 3
![Page 61: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/61.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Traccia dell'esecuzione
for (int i = 0; i < 3; ++i) {System.out.println("i is " + i);
}
System.out.println("all done");
i is 0i is 1i is 2all done
3
La variabile i è uscita dal suo ambitoè locale al ciclo
![Page 62: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/62.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Cicli nidificati
int m = 2;int n = 3;for (int i = 0; i < n; ++i) {
System.out.println("i is " + i);for (int j = 0; j < m; ++j) {
System.out.println(" j is " + j);}
}
![Page 63: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/63.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Cicli nidificati
int m = 2;int n = 3;for (int i = 0; i < n; ++i) {
System.out.println("i is " + i);for (int j = 0; j < m; ++j) {
System.out.println(" j is " + j);}
}i is 0 j is 0 j is 1i is 1 j is 0 j is 1i is 2 j is 0 j is 1
![Page 64: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/64.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un file Nozioni di base
BufferedReader is an input streamthat uses a buffer to store character
inputs for efficiency purposes
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.in is an InputStream variable.InputStream is the superclass of
J ava's input streams
InputStreamReader provides acharacter view of the bytes that
make up an input stream
BufferedReader è un flusso di input che, per ragioni di efficienza,
utilizza un buffer per memorizzare l'input di caratteri
System.in è una variabile InputStream. InputStream è la
superclasse dei flussi di input di Java
InputStreamReader offre una vistain caratteri dei byte che compongono
il flusso di input
![Page 65: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/65.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un file Classe FileReader
Sottoclasse di InputStreamReader che fornisce una vista di input di un file
Costruttore FileReader(String s) Apre il file con nome s in modo che i valori possano essere
estratti Il nome può essere un nome di percorso assoluto o
relativo alla cartella di lavoro corrente
![Page 66: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/66.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close();
![Page 67: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/67.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Impostazione del flusso di input standard
![Page 68: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/68.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Determinazione del nome file
![Page 69: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/69.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Impostazione del flusso del file
![Page 70: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/70.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Elabora le righe una ad una
![Page 71: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/71.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Ottiene la prima riga
![Page 72: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/72.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Assicura la presenza di una riga da elaborare
![Page 73: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/73.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Visualizza la riga corrente
![Page 74: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/74.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Ottiene la riga successiva
![Page 75: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/75.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Assicura la presenza di una riga da elaborareAltrimenti il ciclo è terminato
![Page 76: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/76.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Lettura di un fileBufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Filename: ");String filename = stdin.readLine();
BufferedReader fileIn = new BufferedReader(new FileReader( filename ) );
String currentLine = fileIn.readLine();
while (currentLine != null) {System.out.println(currentLine);
currentLine = fileIn.readLine();}
fileIn.close(); Chiude il flusso del file
![Page 77: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/77.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
L'istruzione do-while Sintassi
do Azione while (Espressione)
Semantica Esegui Azione Se Espressione è true
allora esegui Azione Ripeti il processo fino a
quando Espressione restituisce false
Azione è una singola istruzione o un gruppo di istruzioni tra parentesi graffe
azione
true
false
Espressione
![Page 78: Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies.](https://reader033.fdocuments.in/reader033/viewer/2022052410/5542eb76497959361e8e04bc/html5/thumbnails/78.jpg)
Java – Guida alla programmazione - James Cohoon, Jack Davidson
Copyright © 2004 - The McGraw-Hill Companies srl
Estrazione delle cifre Considerare
System.out.print("Enter a positive number: ");int n = Integer.parseInt(stdin.readLine());do { int digit = number % 10; System.out.println(digit); number = number / 10;} while (number != 0);
Comportamento di esempioEnter a positive number: 11291129