Random en java

Résolu/Fermé
Nouyou Messages postés 41 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 16 mars 2016 - Modifié par jordane45 le 3/12/2014 à 19:05
Nouyou Messages postés 41 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 16 mars 2016 - 3 déc. 2014 à 20:03
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
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 3/12/2014 à 19:23
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...
0
Nouyou Messages postés 41 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 16 mars 2016
3 déc. 2014 à 19:46
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]
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
3 déc. 2014 à 19:48
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...
0
Nouyou Messages postés 41 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 16 mars 2016
3 déc. 2014 à 20:00
D'accord j'vais essayer :)
0
Nouyou Messages postés 41 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 16 mars 2016
3 déc. 2014 à 20:03
la même chose ça m'affiche toujours 16 :(
0