Variable aléatoire en java

Résolu
Mimi -  
 danimo -
Bonjour,
je veux creé une methode générant un nombre aléatoire compris entre 1 et 100
merci d'avance :)

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Tu veux la créer toi même ou utiliser celles qui existent déjà ?

    Random rd = new Random();
    int n=rd.nextInt(100)+1;
    6
    1. Mimi
       
      voila!!je cherche cette commande.merci
      est ce que la commande random appartient a un package bien défini?
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      Evidemment, toutes les classes appartiennent à un package...
      Random est dans java.util
      0
    3. Mimi
       
      merci :))
      0
  2. sasuke-18 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   2
     
    import java.util.Random;
    public class alea {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    Random r = new Random();
    int valeur = 1 + r.nextInt(100);
    System.out.println (valeur);

    }

    }
    2
  3. danimo
     
    Salut,

    En réalité la méthode nextInt(int n) retourne une valeur de 0 (zéro) à n non comprise.

    Dans le cas des valeurs voulues de 1 à 100, plustôt que de faire +1 systématiquement sur chaque valeur retournée (0 à 99), je trouve plus logique de vérifier que la valeur obtenue n'est pas inférieure à la valeur mini 1 souhaitée et ne pas la prendre si c'est le cas mais refaire le calcul.

    boolean encore = true;
             int mini = 1;
             int maxi = 100;
             int n = maxi +1;
             int valeur = 0;
             
             while(encore)
             {
                encore = false;
             
                Random r = new Random(); // import java.util.Random; 
                valeur = r.nextInt(n);
                
                if(valeur < mini) // si mini = 0 valeur ne sera jamais < mini
                {
                   encore = true;
                }
             }
             System.out.println (valeur);
    


    Cordialement,

    Dan
    1
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Tu trouves vraiment plus logique de faire une boucle while aussi longue et coûteuse en calculs (une création d'objet, un appel de méthode, un test, une affectation...) alors qu'il suffit de faire +1 ?
      0
    2. danimo
       
      C'est mon avis et je ne vais surtout pas polémiquer.
      0