Bonjour,

Je débute en Java. Dans un cours, je dois créer un programme qui génère un nombre aléatoire entre 1 et 10 000. Chacun des chiffres de ce nombre doivent être en ordre croissant lorsqu'on les lit de gauche à droite. Si ce n'est pas le cas, le programme doit généré un autre nombre, jusqu'à ce que la condition précédente soit vraie.

Jusqu'à présent, mon programme est capable de décortiquer chaque chiffres et de tous les mettre dans une variable différente sans problème. Il les affiche et les résultats sont bons. Cependant, le problème survient lorsque je tente de créer la condition de la boucle ( (c1 < c2) && (c2<c3) && (c3<c4) && (c4<c5) )

J'arrive à aucun résultat ou le programme entre dans une boucle infini. Voilà le code. Merci à celui ou celle qui saura répondre !

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
double c1=0, c2=0, c3=0, c4=0, c5=0, nb=0;
         double i=0, i2=0, i3=0, i4=0, i5=0;
         double d1=0, d2=0, d3=0, d4=0, d5=0;
 
 
 
         do {
 
             entierAleatoire9 = rnd.nextInt(10001);
             System.out.println("L'entier généré est : " +entierAleatoire9);
             nb = entierAleatoire9;
             c1 = (nb/10000);
 
             i = new Double(c1).intValue();
             d1 = c1 - (new Double (i).doubleValue());
             //System.out.println("décimale 1 = " +d1);
 
             c1 = (int)d1;
 
             i2 = new Double(c1).intValue();
             d2 = (d1*10) - (new Double (i2*10).doubleValue());
             //System.out.println("décimale 2 = " +d2);
 
             c2 =(int)d2;
 
             i3 = new Double(c2).intValue();
             d3 = (d2*10) - (new Double (i3*10).doubleValue());
             //System.out.println("décimale 3 = " +d3);
 
             c3 =(int)d3;
 
             i4 = new Double(c3).intValue();
             d4 = (d3*10) - (new Double(i4*10).doubleValue());
             //System.out.println("décimale 4 = " +d4);
 
             c4 =(int)d4;
 
             i5 = new Double(c4).intValue();
             d5 = Math.rint((d4*10) - (new Double (i5*10).doubleValue()));
             //System.out.println("décimale 5 = " +d5);
 
             c5 = (int)d5;
 
 
         System.out.println("Les chiffres en ordres sont : " +c1 +"  " +c2+"  " +c3+"  " +c4+"  " +c5);  // Tout est parfait ici
 
         } while ((c1<=c2) && (c2<=c3) && (c3<=c4) && (c4<=c5)) ;    // Et tout va mal là !