Conserver les valeurs d'une boucle

Résolu
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

  1. Modérateur
    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
    1. 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
    2. Modérateur
      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
    3. 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
    4. Modérateur
      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
    5. Merci de ton aide !
      0