Bonjour, voila mon problème : Je devais faire un exercice qui dans lequel je devait tirer aléatoirement des 6 numéro de 1 à 49 et que chacun de ces 6 numéros soient différents. Donc je me suis dit il suffit de faire de générer les nombres puis de créer un tableau dans lequel je stocke les valeurs précédentes, puis a chaque itération je vérifie si ce nombre est déjà présent dans le tableau et si oui tant qu'il est déjà présent je le modifie avec le même random qu'au départ.
Sauf que cependant lorsque que je le fait sur java j'ai le droit à l'exeception Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6 ,et pourtant je génère les nombres et il me l'affiche lorsque je le run mais il ne sont pas toujours tous différent...
Voici ce que j'ai faitDe plus ce que je ne comprends est lorsque que change la condition n<= 2,3,4,5,6,7 pour mon premier for il m'affiche toujours le même nombre de chiffre ( toujours 6 comme demandé ) une fois que je le run... Aussi j'ai recherché la signification de l'exception et si j'ai bien compris cela veut dire que je sors de mon tableau et que celui ci est trop petit cependant je n'arrive pas déterminer quand est-ce que je sort du tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public class loto { public static void main(String args[]) { double x;int boules[]=new int[6];int k; int z=0; for(int i=0; i<=5 ; i++){ x=Math.random()*49+1; k=(int)x; if(i>0){ for( int n=0; n<=i; i++){ while(boules[n]!=k)){ x=Math.random()*49+1; k=(int)x; a=(boules[n]!=k); };};}; System.out.print(k+" ");} } }
Donc quelque conseil et explication serait merveilleux, ou si mon principe de base et mauvais ou si il existe une façon plus simple !
Partager