Conserver les valeurs d'une boucle

Résolu/Fermé
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 - 18 août 2013 à 15:05
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 - 18 août 2013 à 17:55
Bonjour,

j'ai un petit soucis assez balot qui m'empêche d'avancer :
j'ai une boucle dans lequel tourne un math.random, j'aimerai conserver les valeurs de ces maths.random mais elles sont écrasées à chaque nouveau tour de boucle.

Je voudrais savoir comment conserver ces valeurs et également les additionner entre elles car la boucle tourne jusqu'à ce que la somme de ces math.random dépasse ou soit égale à 17.

Merci.

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
18 août 2013 à 16:08
Il faudrait voir ton code pour t'aider davantage, mais pour stocker les valeurs tu peux utiliser une liste et pour additionner les valeurs au fur et à mesure un accumulateur suffira.
0
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
18 août 2013 à 16:40
En gros j'ai
do {
		int carte = (int)(Math.random() * (14-1)) + 1;
} while (carte>16)


enfin le reste du code est pas intéressant mais c'est ça, je sais que c'est un accumulateur qu'il me faut mais je ne comprends pas leur fonctionnement dans une boucle do/while.

Merci de m'éclaircir
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
18 août 2013 à 16:47
La question est de savoir pourquoi tu as fait une boucle do while ?
Ici, la boucle for est clairement plus adaptée...

PS. Pour des entiers utilises plutôt la classe Random, plutôt que la méthode random de Math

import java.util.ArrayList;
import java.util.Random;

public class Test
{
    public static void main(String[] args)
    {
        ArrayList<Integer> liste = new ArrayList<Integer>();
        Random random = new Random();
        
        for (int somme = 0, carte; somme < 17; somme += carte)
            liste.add(carte = random.nextInt(13) + 1);
        
        System.out.println(liste);
    }
}
0
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
18 août 2013 à 17:00
En fait j'avais pas vu ça à ta façon, pour moi le do while on l'utilise quand on ne sait pas combien de fois la boucle peut tourner

J'essaie ce que tu m'as donné et je te tiens au courant, merci.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
18 août 2013 à 17:05
Les boucles for, while et do while sont équivalente, tout ce que l'on peut faire avec l'une on peut le faire avec les deux autres. Mais lorsqu'on parle d'un accumulateur que l'on doit initialiser, incrémenter, et dont la valeur est la condition de fin de boucle, tout de suite on doit penser à for.
0
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
18 août 2013 à 17:55
Merci de ton aide !
0