Supponiamo di voler risolvere il seguente problema: vogliamo
leggere 5 numeri interi, calcolarne la somma e stamparla.
Variante con 5 variabili
public class SommaCinqueVar {
public static void main (String[] args) {
System.out.print("Immetti un intero: ");
int num1 =Input.readInt();
System.out.print("Immetti un intero: ");
int num2 =Input.readInt();
System.out.print("Immetti un intero: ");
int num3 =Input.readInt();
System.out.print("Immetti un intero: ");
int num4 =Input.readInt();
System.out.print("Immetti un intero: ");
int num5 =Input.readInt();
int somma = num1 + num2 + num3 + num4 + num5;
System.out.println("La somma e' " + somma);
}
}
|
Usando cinque variabili, nello scrivere il programma non solo bisogna
ripetere cinque volte le istruzioni di scrittura e lettura, ma bisogna
anche usare nomi diversi per le variabili.
Variante che utilizza solo 2 variabili
public class SommaDueVar {
public static void main (String[] args) {
int somma = 0;
int num;
System.out.print("Immetti un intero: ");
num = Input.readInt();
somma = somma + num;
System.out.print("Immetti un intero: ");
num = Input.readInt();
somma = somma + num;
System.out.print("Immetti un intero: ");
num = Input.readInt();
somma = somma + num;
System.out.print("Immetti un intero: ");
num = Input.readInt();
somma = somma + num;
System.out.print("Immetti un intero: ");
num = Input.readInt();
somma = somma + num;
System.out.println ("La somma e' " + somma);
}
}
|
Riutilizzando la stessa variabile ad ogni lettura perdiamo i
dati letti in precedenza, ma almeno nello scrivere il programma
possiamo sfruttare la tecnica del copia-e-incolla.
Si potrebbe anche usare una sola variabile (vedi SommaUnaVar),
ma rimane comunque il problema di dover ripetere tante volte la stessa
istruzione o lo stesso gruppo di istruzioni:
- Notate che se volessimo sommare un numero di valori diverso da 5
dovremmo riscrivere il programma.
-
Pensate cosa dovreste scrivere se i valori da leggere fossero 100!
Come controllereste che il vostro programma ne legga proprio 100 e non
99 o magari 101?
-
Infine, se non fosse possibile sapere a priori quanti valori devono essere
letti come potreste scrivere il programma adatto?
Per trattare questi casi conviene usare opportunamente le istruzioni iterative messe a disposizione
dai linguaggi di programmazione, Java incluso.
|