Je souhaite générer un nombre compris entre 1 et 10 en Java.
Voici ce que j'ai essayé:
Random rn = new Random();
int answer = rn.nextInt(10) + 1;
Y a-t-il un moyen de dire ce qu'il faut mettre entre parenthèses ()
lors de l'appel de la méthode nextInt et ce qu'il faut ajouter?
Comme la documentation , cet appel de méthode renvoie "une valeur int pseudo-aléatoire, uniformément répartie entre 0 (inclus) et la valeur spécifiée (exclusif)". Cela signifie que vous obtiendrez des nombres de 0 à 9 dans votre cas. Donc, vous avez tout fait correctement en ajoutant un à ce nombre.
De manière générale, si vous avez besoin de générer des nombres de min
à max
(y compris les deux), vous écrivez
random.nextInt(max - min + 1) + min
La manière standard de procéder est la suivante:
Fournir:
et obtenez en retour un entier compris entre min et max, inclus.
Random Rand = new Random();
// nextInt as provided by Random is exclusive of the top value so you need to add 1
int randomNum = Rand.nextInt((max - min) + 1) + min;
Voir le pertinent JavaDoc .
Comme expliqué par Aurund, les objets aléatoires créés peu de temps après l'autre auront tendance à produire une sortie similaire. Il serait donc judicieux de conserver l'objet aléatoire créé sous forme de champ plutôt que dans une méthode.
Cela fonctionnera pour générer un nombre compris entre 1 et 10. Assurez-vous que vous importez Random en haut de votre code.
import Java.util.Random;
Si vous voulez le tester, essayez quelque chose comme ça.
Random rn = new Random();
for(int i =0; i < 100; i++)
{
int answer = rn.nextInt(10) + 1;
System.out.println(answer);
}
De plus, si vous modifiez le nombre entre parenthèses, un nombre aléatoire compris entre 0 et -1 sera créé (à moins que vous n'en ajoutiez un comme vous le feriez, il s'agira de 1 au nombre que vous avez entré).