Structure conditionnelle

Résolu
Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   -  
Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir !

Je voulais simplement savoir s'il existait, en java, une fonction pour faire une action ou une autre aléatoirement selon une condition ! En clair, quelque chose qui traduirait ceci :

if(condition)
    {
     int random = 1 + (int) (Math.random() * 2);
     if (random =1)
         {
          blablabla
         }
    else 
         {
          blablabla
         }
    }


C'est juste histoire d'alléger le code, et histoire de nourrir ma curiosité ^_^

Merci, bonne soirée !

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Comme tu as fait c'est bien, mais en utilisant plutôt un vrai objet Random.

    private static final Random random = new Random();
    
    if (random.nextBoolean())
    {
        // ...
    }
    else
    {
        // ...
    }
    0
  2. Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   6
     
    Ça ne marche pas, j'ai "Illegal modifer parameter for random; only final is permitted." je ne sais pas ce que c'est ! Peux-tu m'éclaircir ?

    Merci
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      C'est parce que tel que je l'ai écrit il faut mettre la déclaration de l'objet Random en dehors de la méthode.

      public class Classe
      {
          private static final Random random = new Random();
      
          //...
      
          void methode()
          {
              // ...
              
              if (random.nextBoolean())
              {
                  // ...
              }
              else
              {
                  // ...
              }
              
              // ...
          }
      }

      On peut bien sûr l'utiliser comme n'importe quel autre objet, mais effectivement dans ce cas les mots-clés private et static ne peuvent pas être utilisés :

      public class Classe
      {
          //...
      
          void methode()
          {
              final Random random = new Random();
              
              // ...
              
              if (random.nextBoolean())
              {
                  // ...
              }
              else
              {
                  // ...
              }
              
              // ...
          }
      }
      0
    2. Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   6
       
      Je maîtrise pas vraiment les objets en fait ! Merci de ton aide en tous cas !
      0