Per imparare a utilizzare i metodi in Java ho provato a fare un esercizio:
una volta estratti n numeri casuali stampo quello massimo. Il problema è che il risultato del numero massimo è sbagliato.
Qualcuno mi saprebbe spiegare qual'è l'errore?
Grazie!
Questo è il codice:
------------------------------------------------------------------------------------------------------------
package Ripasso;
import java.util.Scanner;
public class Funzioni {
public static void main(String[] args) {
Scanner tastiera = new Scanner(System.in);
int n=0;
int max=0;
do //ciclo che controlla che il numero inserito sia positivo
{
System.out.print("Quanti lanci? ");
n = tastiera.nextInt();
if(n<=0)
System.out.println("Solo valori positivi");
else
break;
}while(true);
for (int i=0;i<n;i++)
System.out.println(numerocasuale()); //stampa dei numeri casuali richiamando il metodo
for (int j=0;j<n;j++)
{
int numero=numerocasuale(); //assegno a una variabile il numero casuale
if (numero>max) //calcolo massimo
max=numero;
}
System.out.println("Massimo" +max); //stampa massimo
}
public static int numerocasuale() //dichiarazione metodo
{
return (int)(1+ Math.random()*1000);
}
}
una volta estratti n numeri casuali stampo quello massimo. Il problema è che il risultato del numero massimo è sbagliato.
Qualcuno mi saprebbe spiegare qual'è l'errore?
Grazie!
Questo è il codice:
------------------------------------------------------------------------------------------------------------
package Ripasso;
import java.util.Scanner;
public class Funzioni {
public static void main(String[] args) {
Scanner tastiera = new Scanner(System.in);
int n=0;
int max=0;
do //ciclo che controlla che il numero inserito sia positivo
{
System.out.print("Quanti lanci? ");
n = tastiera.nextInt();
if(n<=0)
System.out.println("Solo valori positivi");
else
break;
}while(true);
for (int i=0;i<n;i++)
System.out.println(numerocasuale()); //stampa dei numeri casuali richiamando il metodo
for (int j=0;j<n;j++)
{
int numero=numerocasuale(); //assegno a una variabile il numero casuale
if (numero>max) //calcolo massimo
max=numero;
}
System.out.println("Massimo" +max); //stampa massimo
}
public static int numerocasuale() //dichiarazione metodo
{
return (int)(1+ Math.random()*1000);
}
}