Java prb de debutant

kevinm3 -  
 Utilisateur anonyme -
Bonjour,

Je suis en train de m'initier a java, et j'ai tenté de créer un pb simple qui me permet de générer aléatoirement 5 numéros pour l'euromillion.

Je voudrais fignoler ce prog en admettant que si deux nombres sont identeiques lorsqu'ils sont générés la boucle recommence. voici mon code pour le moment

import java.util.Random;


public class prob {

/**
* @param args
*/
public static void main(String[] args) {
int num = 50;
int eto = 9;

long resultnum = (long) ((num * (num-1)* (num-2) * (num-3) * (num-4))/( 1*2*3*4*5));
long resulteto = (long) ((eto * (eto-1))/(1*2));
System.out.println("Le nombre de combinaisons Euromillion est: " +resultnum*resulteto);


Random r = new Random();
int Min = 0;
int Max = 50;
int v = Min + r.nextInt(Max - Min);
int w = Min + r.nextInt(Max - Min);
int x = Min + r.nextInt(Max - Min);
int y = Min + r.nextInt(Max - Min);
int z = Min + r.nextInt(Max - Min);
if (v == w || v==x || v==y || v==z || w==x || w==y || w==z || x==y || x==z || y==z );


System.out.println("1er : " +v );
System.out.println("2em : " +w );
System.out.println("3em : " +x );
System.out.println("4em : " +y );
System.out.println("5em : " +z );



}

}


voila c'est le if qui me pose probleme je sais pas comment faire recommencer lorsque j'ai 2 nombre identiques.

En basic j'y arrivais avec les calculatrices TI92 ect... avec le simple goto

Lbl debut
...............
if a = b
goto debut
A voir également:

3 réponses

nabil07 Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   64
 
bonjour,

tu peux mettre le travail de génération des code dans une méthode.
ainsi il sera facile d'appeler la méthode.
0
Utilisateur anonyme
 
Salut,

La méthode suivante est à adapter au cas "Euromillion"

 public static void nombreAlea()
      {
         boolean encore = true;
         int[] tab = new int[5]; // est initialisé a 0 par défaut
         for (int i = 0; i <5; i++) // on l'initialise a -1 sinon le num. éventuel 0 serait un doublon
            tab[i] = -1;
         int i1 = 0;
         int i2 = 0;
      
         while(encore)
         {
            for (i1 = 0; i1 <5; i1++)
            {
               encore = false; // sera forcé true si doublon
               Random r = new Random(); 
               int Min = 0; 
               int Max = 50; 
               int a = Min + r.nextInt(Max - Min); //trouvé
               for (i2 = 0; i2 <5; i2++)
               {
                  if (a == tab[i2])
                  {
                     encore = true;
                     // supprimer en exploitation normale
                 // >>>>>>>>>>>>>>> d'ici,	
                     System.out.println("Les num. deja obtenus:");
                     for (int i = 0; i <5; i++)
                     {
                        System.out.println(tab[i]); // pour controler deja trouvé
                     }
                     System.out.println("Le nouveau num. obtenu:\n"
                        + a + " est un doublon, on ne le prend pas.(i2 = " + i2 + ")\n");
                  // >>>>>>>>>>>>>>> a ici

                     i1--;
                     break;
                  }
               }
               if (encore == false)
                  tab[i1] = a;
               else
                  break;
            }
         }
         for (i1 = 0; i1 <5; i1++)
         {
            System.out.println("num. " + (i1 +1) + ": " + tab[i1]);
         }
         System.out.println("");
         
      }


Elle est appelée depuis la méthode 'main':

public static void main(String args[])
      {
.....
......
       nombreAlea();
         // Les appels suivants permettent d'obtenir des éventuels doublons
         // qui seront mis en évidence avant les suppréssions de lignes préconisées
         // dans la méthode 'nombreAlea()'
         // sont a supprimer en exploitation normale
       nombreAlea(); 
       nombreAlea(); 
       nombreAlea(); 
       nombreAlea(); 
       nombreAlea();


Cordialement,

Dan
0
Utilisateur anonyme
 
Ps,

S'il y a un doublon, il n'est bien entendu pas pris, mais les numéros déjà obtenus non plus puisqu'on recommence au début...

Dan
0