//******************************************************************** // Average2.java // // Uso del ciclo while, con sentinella // e costruzione dinamica della media per evitare // un facile overflow. //******************************************************************** import java.text.DecimalFormat; import cs1.Keyboard; public class Average2 { //----------------------------------------------------------------- // Calcolo della media di un insieme di numeri immessi dall'utente. //----------------------------------------------------------------- public static void main (String[] args) { byte valore, cont = 0; double media; System.out.println ("Immettere interi per calcolarne la somma (0 per terminare)."); System.out.print ("Numero? "); valore = (byte)Keyboard.readInt(); media = valore; while (valore != 0) // il valore di sentinella 0 termina il ciclo { cont++; media += (valore - media)/cont; System.out.print ("Numero ? (0 per terminare): "); valore = (byte)Keyboard.readInt(); } System.out.println (); System.out.println ("Numero dei dati immessi: " + cont); DecimalFormat fmt = new DecimalFormat ("0.###"); System.out.println ("La media è " + fmt.format(media)); } }