Random en java [Résolu/Fermé]

Signaler
Messages postés
41
Date d'inscription
lundi 1 décembre 2014
Statut
Membre
Dernière intervention
16 mars 2016
-
Messages postés
41
Date d'inscription
lundi 1 décembre 2014
Statut
Membre
Dernière intervention
16 mars 2016
-
bonjour j'ai un problème avec la class Random
je veux afficher des nombres paires compris entre 0 et 14
voici le code que j'ai écrit , à chaque fois il m'affiche 16 , je ne sais pas c'est quoi le problème avec le contrôle de saisie

 Random R=new Random();
  int m=14;
  do
  {
   int k=R.nextInt(1);
  if(k==0)
   m=m+2;
  else
   m=m-2;
  }while((m<0)&&(m>14));
  System.out.print(m);



EDIT :
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

2 réponses

Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Bonjour,

La borne que tu passes en paramètre est exclusive. Donc comme tu as mis 1, tu choisis aléatoirement un nombre entre 0 inclus et 1 exclus... donc tu obtiens toujours 0 !

Pourquoi ne pas choisir un nombre aléatoirement entre 0 et 8 ? Tu le multiplies ensuite par 2 pour être sûr qu'il est pair et ça t'évite une boucle maladroite...
Messages postés
41
Date d'inscription
lundi 1 décembre 2014
Statut
Membre
Dernière intervention
16 mars 2016

Une bonne idée mais ne marche pas dans mon cas , parceque m est initialiser et je vais à chaque fois ajouter ou soustraire 2 à condition que le m reste toujours dans l'intervalle [0,14]
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Dans tous les cas, il ne faut pas faire de random sur la borne 1, ça te renverra toujours 0.
Soit tu fais 2 et tu auras 50% de 0 et 50% de 1. Tu peux aussi mettre plus mais dans ce cas tu auras également plus de else...
Messages postés
41
Date d'inscription
lundi 1 décembre 2014
Statut
Membre
Dernière intervention
16 mars 2016

D'accord j'vais essayer :)
Messages postés
41
Date d'inscription
lundi 1 décembre 2014
Statut
Membre
Dernière intervention
16 mars 2016

la même chose ça m'affiche toujours 16 :(