× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 [java] Simplification code
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
BxG
  Posté le 12/12/2008 @ 23:10 
Aller en bas de la page 
Astucien

Bonsoir a tous,

Alors voila je souhaite avoir des valeurs différente entre 1 et 8, voici mon code:

int a = (int) (Math.random() * 8 + 1);
int b;
int c;
int d;
int e;
int f;
int g;
int h;

do{ b = (int) (Math.random() * 8 + 1); }while(a == b);
do{ c = (int) (Math.random() * 8 + 1); }while(c == a || c == b);
do{ d = (int) (Math.random() * 8 + 1); }while(d == a || d == b || d == c);
do{ e = (int) (Math.random() * 8 + 1); }while(e == a || e == b || e == c || e == d);
do{ f = (int) (Math.random() * 8 + 1); }while(f == a || f == b || f == c || f == d || f == e);
do{ g = (int) (Math.random() * 8 + 1); }while(g == a || g == b || g == c || g == d || g == e || g == f);
do{ h = (int) (Math.random() * 8 + 1); }while(h == a || h == b || h == c || h == d || h == e || h == f || h ==g);

Je ne sais pas comment faire pour le simplifier, si vous avez une idée

Merci d'avance

Publicité
fennec.
 Posté le 16/12/2008 à 13:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

si je comprend bien tu dois avoir 8 nombres compris entre 1 et 8

int [] nbr = new int [8];

for (int i=0;i<7;i++)

nbr[i] = (int) (Math.random() * 8 + 1);

va voir ce site

http://java.developpez.com/cours/

si tu ne le connais pas, tu trouvera beaucoup de chose pour bien débuter en java

bonne lecture



Modifié par fennec. le 16/12/2008 13:52
BxG
 Posté le 17/12/2008 à 08:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Euh oui je dois avoir 8 nombre compris entre 1 et 8 mais tous différents, d'ou ce code un peu chargé :

do{ b = (int) (Math.random() * 8 + 1); }while(a == b);
do{ c = (int) (Math.random() * 8 + 1); }while(c == a || c == b);
do{ d = (int) (Math.random() * 8 + 1); }while(d == a || d == b || d == c);
do{ e = (int) (Math.random() * 8 + 1); }while(e == a || e == b || e == c || e == d);
do{ f = (int) (Math.random() * 8 + 1); }while(f == a || f == b || f == c || f == d || f == e);
do{ g = (int) (Math.random() * 8 + 1); }while(g == a || g == b || g == c || g == d || g == e || g == f);
do{ h = (int) (Math.random() * 8 + 1); }while(h == a || h == b || h == c || h == d || h == e || h == f || h ==g);

fennec.
 Posté le 17/12/2008 à 13:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

pour les avoir tous différent

a chaque fois que ton random te donne un nombre tu doi faire une boucle

sur ton tableau (du moins tous ce qui a déjà été rempli) et refaire un random

si le nombre a déjà été pris



Modifié par fennec. le 17/12/2008 13:12
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
29,99 €SSD PNY CS900 240 Go à 29,99 €
Valable jusqu'au 28 Septembre

Amazon fait une promotion sur le SSD PNY CS900 240 Go qui passe à 29,99 €. Ce SSD offre des vitesses d'écriture de 515 Mo/s et de lecture à 550 Mo/s. Il est garanti 3 ans. La livraison est gratuite.


> Voir l'offre
25,99 €Chargeur panneau solaire RAVPower USB (21W, 2 ports USB, pliable, étanche) à 25,99 € via coupon
Valable jusqu'au 29 Septembre

Amazon fait une promotion sur le chargeur panneau solaire RAVPower 21W qui passe à 25,99 € via un coupon de réduction de 40% alors qu'on le trouve ailleurs à partir de 40 €. Ce panneau solaire est résistant et étanche, est équipé de 4 crochets pour l'accrocher partout et possède 2 ports USB capables d'atteindre 2,4 A chacun pour un total de 4,8 A. 2 câbles micro usb sont fournis. Pour profiter de l'offre, cochez la case Coupon : utiliser le coupon de réduction de 35%. Le prix passera à 25,99 €.


> Voir l'offre
200,04 €SSD SanDisk Ultra 3D 2 To à 200,04 € livré
Valable jusqu'au 28 Septembre

Amazon Allemagne fait une belle promotion sur le SSD SanDisk Ultra 3D d'une capacité de 2 To qui passe à 195,52 €. Comptez 4,52 € pour la livraison en France, soit un total de 200,04 € livré. On le trouve ailleurs autour de 260 €. Une bonne affaire pour ce SSD performant qui offre des débits de 560 Mo/s en lecture et 530 Mo/s en écriture. Cette version est garantie 3 ans.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre

Sujets relatifs
parametrage du code java pour imprimer
Requete SQL ou code java
Classer une arraylist (java)
Ameliorer le Main "Java" avec les fonctions & procédures
Rafraichir un tableau en java
Calcul du jour d'après - - > java
encore java
Filter un fichier CSV en Java
java error
java 9
Plus de sujets relatifs à [java] Simplification code
 > Tous les forums > Forum Autres langages