Se il sottoprogramma produce più risultati è possibile restituirli al metodo chiamante in diversi modi.
Un array tra i parametri
Nell’elenco dei parametri compare un array, sul quale si può scrivere…
Esempio
... double vettore[]; vettore=new double[100]; random(vettore); ... public static void random(double v[]) { for(int i=0; i < v.length; i++) v[i]=Math.random(); }
Array come risultato
Se le risposte sono tutte dello stesso tipo si possono impacchettare in un array
Esempio
... double vettore[]; vettore=random(100); ... double mmm[]; mmm=MinMedMax(vettore); ... public static double[] random(int n) { double v[]=new double[n]; for(int i=0; i < n; i++) v[i]=Math.random(); return v; } public static double[] MinMedMax(double v[]) { double risp =new double[3];double minimo=v[0]; double totale =v[0]; double massimo=v[0]; for(int i=1; i < v.length; i++) { minimo =Math.min(minimo , v[i]); totale+=v[i]; massimo=Math.max(massimo, v[i]); } risp[0]=minimo; risp[1]=totale/v.length; risp[2]=massimo; return risp; }
Più metodi
Si divide il metodo in più metodi.
Ciascuno di questi restituisce uno dei risultati richiesti
Esempio
... double vettore[]; ... double mi=minimo(vettore); double me=media(vettore); double ma=massimo(vettore); ... public static double minimo(double v[]) { double risp=v[0]; for(int i=1; i < v.length; i++) risp=Math.min(risp, v[i]); return risp; } public static double media(double v[]) { double totale=0.0; for(int i=0; i < v.length; i++) totale+=v[i]; return totale/v.length; } public static double massimo(double v[]) { double risp=v[0]; for(int i=1; i < v.length; i++) risp=Math.max(risp, v[i]); return risp; }